Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анализ данных XML-документа 
:(
    Опции темы
happyfu
Дата 21.6.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.6.2008

Репутация: нет
Всего: нет



Помогите с программой. 
Нужно считать числовые данные(цена, частота мин, частота макс) из XML-документа в двухмерный массив и записать этот массив в текстовый файл. Вот XML

<?xml version="1.0" encoding="UTF-8"?>
<headphones>
<unit1 >
  <title>Technics</title>
  <Characteristic amount="24" unit="доллар">Цена</Characteristic>
  <Characteristic amount="20" unit="герц">Частота мин</Characteristic>
  <Characteristic amount="27" unit="кгерц">Частота макс</Characteristic>
</unit1>

<unit2 >
  <title>Sennheiser</title>
  <Characteristic amount="29" unit="доллар">Цена</Characteristic>
  <Characteristic amount="20" unit="герц">Частота мин</Characteristic>
  <Characteristic amount="20" unit="кгерц">Частота макс</Characteristic>
</unit2>

<unit3 >
  <title>AKG</title>
  <Characteristic amount="95" unit="доллар">Цена</Characteristic>
  <Characteristic amount="15" unit="герц">Частота мин</Characteristic>
  <Characteristic amount="22" unit="кгерц">Частота макс</Characteristic>
</unit3>
</headphones>

Это сообщение отредактировал(а) happyfu - 21.6.2008, 17:57
PM MAIL   Вверх
Rififi
Дата 21.6.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



и как этот массив должен выглядеть?
PM MAIL   Вверх
happyfu
Дата 22.6.2008, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.6.2008

Репутация: нет
Всего: нет



Лучше просто вывести эти данные в файл текстовый. Например 

24 20 27
29 20 20
95 15 22
PM MAIL   Вверх
bronislav
Дата 22.6.2008, 19:06 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Используй готовые библиотеки для парсинга xml. Например tinyxml, expat, libxml


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
jonie
Дата 22.6.2008, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: нет
Всего: 118



если задача не академическая, то лично ябы предпочел xslt преобразование (т.е. вообще без С++).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
SABROG
Дата 22.6.2008, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: нет
Всего: 91



Цитата(jonie @ 22.6.2008,  22:45)
если задача не академическая, то лично ябы предпочел xslt преобразование (т.е. вообще без С++).

В принципе да, можно качнуть прогу xsltproc, что идет в пакете libxml2 и создать .xsl файлик.
По сути файл - алгоритм парсинга xml'я. Ну или если совсем не хочется ничего качать и xml не большой, то можно создать xsl файлик, добавить заголовок в xml и открыть его через firefox/ie, а результат скопировать и сохранить в текстовый файл.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Rififi
Дата 23.6.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



happyfu, 
пропускаешь xml через такой XPath столько раз, сколько у тебя новов unit*:

//unit1//@amount

вместо unit1 подставлешь имена других нодов
PM MAIL   Вверх
Andrey44
Дата 24.6.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: нет
Всего: 26



Можно и разобраться с IXMLDOMDocument и остальными IXML......... Если есть желание smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Goodilla
Дата 25.6.2008, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.10.2007

Репутация: нет
Всего: 1



Тему уже обсуждали, ищи на форуме!

ссылка № 1
ссылка № 2
PM MAIL   Вверх
happyfu
Дата 25.6.2008, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.6.2008

Репутация: нет
Всего: нет



Подскажите как привести const xmlChar * к const char *?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1422 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.