чтение XML файла ..

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

чтение XML файла ..

Сообщение Masygreen »

Дня доброго!
ни как не разберусь с чтением XML.. на форуме была тема но там совсем туманно...
сабж - имеем xml

Код: Выделить всё

<root>
<fileversion>00_11</fileversion>
</root>
читаю (из кода убрал проверки типа if(hRoot=0) - чтоб в экраны влезло )

Код: Выделить всё

 var xDom,hRoot,hNodeList,hNodeItem  : LongInt;
 var hNodeCount,i:integer; 
 xDom := XMLDOMDoc_New;
 XMLDOMDoc_Load(xDom,FileName);//пробуем открыть файл XML
 hRoot := XMLDOMDoc_DocumentElement(xDom);//получаем корневой элемент
 hNodeList := XMLDOMNode_Get_ChildNodes(hRoot);//получаем child корневого элемента и идем по ним циклом
 hNodeCount := XMLDOMNodeList_Get_Length(hNodeList);
 for ( i := 0; i < hNodeCount; i := i + 1 )
  {
       hNodeItem:=XMLDOMNodeList_Get_Item(hNodeList, i);
       message(XMLDOMNode_get_NodeType(hNodeItem)+'=='+XMLDOMNode_Get_NodeName(hNodeItem));
       message(XMLDOMAttribute_get_NodeValue(hNodeItem));
  }
тип и имя элемента получаю прекрасно
на получении значения вылетаю рантаймом

Код: Выделить всё

 message(XMLDOMAttribute_get_NodeValue(hNodeItem));
Время ведет!
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: чтение XML файла ..

Сообщение Masygreen »

при этом по имени функции XMLDOMAttribute_get_NodeValue она и не должна брать значение элемента, а должна брать значение атрибута(что она прекрасно делает), но в XMLDOMFunc.pas другой подходящей функции нет :(
Время ведет!
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: чтение XML файла ..

Сообщение Vik »

Тоже в свое время не нашел нужной функции. Создать можно подобную структуру, а прочитать как, непонятно. Да и если посмотреть какие xml используются в галактике - везде только атрибуты или CDATA. Создается впечатление, что существующий функционал просто не позволяет прочитать такую xml. Можно попробовать использовать парсер Microsoft XML. Как-то даже ради интереса сгенерировал объектные фейсы, но потом отвлекся и больше руки не дошли
Ответить