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

Вниз

xml   Найти похожие ветки 

 
vasa   (2012-02-17 16:57) [0]

подскажите, как при помоши TXmlDocumet выдрать параметр ZZZ из вот такого xml:

<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<DECLARATIONS>
 <DECLGROUP>
   <VALUE.OBJECT>
<INSTANCE CLASSNAME="XXX">
<PROPERTY NAME="Caption" TYPE="string"><VALUE>ZZZ</VALUE></PROPERTY>
</INSTANCE>
</VALUE.OBJECT>

Delphi Xe2

...
var
Node: IXMLNode;
begin
memo1.Clear;
Node := XML1.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[0].ChildNodes[0];
Memo1.Lines.Add(Node.NodeName);
Memo1.Lines.Add(Node.ChildValues["NAME"]);

???

т.е. надо получить Caption


 
sniknik ©   (2012-02-17 17:08) [1]

> вот такого xml:
это не xml, набор строк -

Ошибка синтаксического анализа XML: элемент не найден
Строка 8, символ 16:</VALUE.OBJECT>


 
знайка   (2012-02-17 17:26) [2]

Надо понимать разницу в понятиях елемента и его атрибута.
NAME тут это атрибут.
И откройте для себя xpath.


 
vasa   (2012-02-17 17:38) [3]

<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<DECLARATIONS>
 <DECLGROUP>
   <VALUE.OBJECT>
<INSTANCE CLASSNAME="XXX">
<PROPERTY NAME="Caption" TYPE="string"><VALUE>ZZZ</VALUE></PROPERTY></INSTANCE>
</VALUE.OBJECT>
 </DECLGROUP>
</DECLARATIONS>

в конце не добавил


 
Медвежонок Пятачок ©   (2012-02-17 18:06) [4]

/declaration/declgroup/value.object/instanse/property[@name="caption"]/value

и соблюсти регистр.
только не тхмлдокумент, а ixmldomdocument2


 
vasa   (2012-02-17 18:07) [5]

xpath слишком сложно.

попробовал так, но zzz все равно не показывает

Node := XML1.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[0].ChildNodes[0];
Memo1.Lines.Add(Node.NodeName);
//Memo1.Lines.Add(Node.Attributes["NAME"]);
Memo1.Lines.Add(vartostr(node.Text));


 
Медвежонок Пятачок ©   (2012-02-17 18:09) [6]

если сложно икспас, то поупражняйся в арифметике, подсчитывая количество и порядок чайлдов


 
знайка   (2012-02-17 18:10) [7]


> XML1.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[0].
> ChildNodes[0]
Это куда по вашему указывает?


 
Медвежонок Пятачок ©   (2012-02-17 18:14) [8]

куда-то очень рядом показывает :-)


 
vasa   (2012-02-17 18:16) [9]

но вот это же Memo1.Lines.Add(Node.NodeName); показывет PROPERTY ...


 
vasa   (2012-02-17 18:17) [10]

а это //Memo1.Lines.Add(Node.Attributes["NAME"]); показывает Caption


 
Медвежонок Пятачок ©   (2012-02-17 18:19) [11]

ну естественно проперти.
а ты чего хотел от четвертого потомка рутового узла?


 
vasa   (2012-02-17 19:24) [12]


> Медвежонок Пятачок ©   (17.02.12 18:06) [4]


а почему там регистр важен? :(
а если заранее ключи неизвестны?



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

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

Наверх




Память: 0.49 MB
Время: 0.052 c
15-1352817812
bibi
2012-11-13 18:43
2013.03.22
C# RequiredFieldValidator &amp; RegularExpressionValidator


15-1329926834
Unknown user
2012-02-22 20:07
2013.03.22
Balloon hint


15-1329646997
Чайник
2012-02-19 14:23
2013.03.22
Direct 3D и Delphi 2010


15-1352709195
Аббат Пиккола
2012-11-12 12:33
2013.03.22
За демократию


15-1334781003
Юрий
2012-04-19 00:30
2013.03.22
С днем рождения ! 19 апреля 2012 четверг