Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 16.05.2006, 23:34   [включить плавающее окно]   #1
*ap*
Мужской Новенький
Автор темы
 
Регистрация: 16.05.2006
Ищу помощь по С

Помогите кто может дописать на С программку.
Есть программа, которая делает разборку xml файла, (xml parser), она совершенно правильно работает, но мне надо чтобы она делала еще одну вещь, а точнее счиатала бы и записывала в отдельный файл количество строк 4-ой вложенности
Например, ниже есть xml код. Вывод должен быть таким
CD id = 37 6
CD id = 48 5
программа приложена ниже. Буду очень благодарен за помощь

<?xml version="1.0" encoding="ISO8859-1" ?>
<CATALOG>
<Music>
<CD id=“37“>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE/>
<YEAR>1985</YEAR>
</CD>
<CD id=“48“>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tylor</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
</Music>
</CD>
</CATALOG>

*ap* добавил :

http://www.zone.ee/mrfred/xml_parser2.cpp
здесь с комметарием на русском языке
Вложения
Тип файла: txt parser.txt (5.2 Кб, 88 просмотров)
*ap* вне форума  
Ответить с цитированием
Непрочитано 17.05.2006, 17:41   [включить плавающее окно]   #2
Phodopus
Мужской Продвинутый
 
Регистрация: 05.10.2005
Адрес: Санкт-Петербург
Если не важна идеальность кода (а твой парсер, например, не обрабатывает !CDATA) то можно поступить так:

Тогда как в XML символы "<" запрещены, кроме как при открытии тэга, а последовательность сиволов "</" можно считать закрывающим тагом, то достаточно считать файл, объявить переменную level, инкрементировать ее при нахождении "<" и следующего за ним не "/" и, соответсвенно, декрементировать ее при нахождении "</". и при этом ловить количество переходов от 3 к 4. Ну, там, смотря какое изначальное значение дашь. Идея ясна?

Последний раз редактировалось Phodopus; 18.05.2006 в 14:19.
Phodopus вне форума  
Ответить с цитированием
Непрочитано 17.05.2006, 19:03   [включить плавающее окно]   #3
*ap*
Мужской Новенький
Автор темы
 
Регистрация: 16.05.2006
идеальность кода не важна.
идея понятна
а как ловить переход от 3 к 4 не знаю как реализовать
*ap* вне форума  
Ответить с цитированием
Непрочитано 18.05.2006, 14:18   [включить плавающее окно]   #4
Phodopus
Мужской Продвинутый
 
Регистрация: 05.10.2005
Адрес: Санкт-Петербург
ну блин, рядом со строкой level++ добавить условие типа if (level == 4) then level4items++;
вроде так.
Phodopus вне форума  
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:50. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey