Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как прочитать данные xml файла? [D7, XP]


Сергей ©   (2010-11-29 18:11:00) 

Как прочить данные из второго тега <attribute>
<?xml version="1.0" encoding="UTF-8"?>
<obj-xml>
<object>
<attribute>
<name>ПОЛЕ1</name>
<value>0.00</value>
</attribute>
<attribute>
<name>ПОЛЕ2</name>
<value>0.45</value>
</attribute>
</object>
</obj-xml>

Этим кодом получилось прочитать только ПОЛЕ1 И 0.00, но как прочитать
ПОЛЕ2 и 0.45

XMLDocument1.Active := true;
StartItemNode := XMLDocument1.DocumentElement.ChildNodes.First.ChildNodes.FindNode('attribute') ;
ANode := StartItemNode;
repeat
RichEdit2.Lines.add(ANode.ChildNodes['name'].Text);
RichEdit2.Lines.add(ANode.ChildNodes['value'].Text);
until ANode <> nil;


Медвежонок Пятачок   (2010-11-30 13:57:00) [1]

Project->Import Type library->msxml (ver 4.0 оr above) -> create unit;
uses msxml2_tlb;

xdoc := CoDomDocument.create;
xdoc.Load(<fileName>);
iNode := xdoc.selectSingleNode('/obj-xml/object/atribute[name="ПОЛЕ2"]/value');
if iNode <> nil then
ShowMessage(iNode.text)


Медвежонок Пятачок   (2010-11-30 13:49:00) [2]

в цикле по XMLDocument1.DocumentElement.ChildNodes.First.ChildNodes
либо XPath-выражением в SelectNodes()


я бы не стал затачиваться на это, так как структура у него немного дурацкая.
Ему не нужен второй по порядку узел <attribute>.

Ему нужен узел /obj-xml/object/atribute[name='ПОЛЕ2']
который может оказаться как вторым, так и стовторым в списке чайлдов <object>

То есть юзать надо xpath


Сергей   (2010-11-30 13:09:00) [3]

SelectNodes() - А как это сделать?


clickmaker   (2010-11-29 18:15:00) [4]

в цикле по XMLDocument1.DocumentElement.ChildNodes.First.ChildNodes
либо XPath-выражением в SelectNodes()


Наверх

Титульная страница Поиск, карта сайта Написать письмо