Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.20;
Скачать: CL | DM;

Вниз

Как прочитать данные xml файла?   Найти похожие ветки 

 
Сергей   (2010-11-29 18:11) [0]

Как прочить данные из второго тега <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;


 
clickmaker ©   (2010-11-29 18:15) [1]

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


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

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


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

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


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

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

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


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

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)



Страницы: 1 вся ветка

Текущий архив: 2011.02.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
15-1289424592
Юрий
2010-11-11 00:29
2011.02.20
С днем рождения ! 11 ноября 2010 четверг


15-1289683791
Юрий
2010-11-14 00:29
2011.02.20
С днем рождения ! 14 ноября 2010 воскресенье


2-1289572277
Vidog
2010-11-12 17:31
2011.02.20
Прозрачность


15-1289750398
polkin
2010-11-14 18:59
2011.02.20
StringGrid и что-то вроде onchange/onvalidate


2-1290672490
DeadAlice
2010-11-25 11:08
2011.02.20
Аналог функции sleep() без прерывания работы приложения