![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
xml
vasa © (2012-02-17 16:57:00)подскажите, как при помоши 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
vasa (2012-02-17 19:24:00) [1]
> Медвежонок Пятачок © (17.02.12 18:06) [4]
а почему там регистр важен? :(
а если заранее ключи неизвестны?
Медвежонок Пятачок (2012-02-17 18:19:00) [2]ну естественно проперти.
а ты чего хотел от четвертого потомка рутового узла?
vasa (2012-02-17 18:17:00) [3]а это //Memo1.Lines.Add(Node.Attributes['NAME']); показывает Caption
vasa (2012-02-17 18:16:00) [4]но вот это же Memo1.Lines.Add(Node.NodeName); показывет PROPERTY ...
Медвежонок Пятачок (2012-02-17 18:14:00) [5]куда-то очень рядом показывает :-)
знайка (2012-02-17 18:10:00) [6]
> XML1.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[0].
> ChildNodes[0]
Это куда по вашему указывает?
Медвежонок Пятачок (2012-02-17 18:09:00) [7]если сложно икспас, то поупражняйся в арифметике, подсчитывая количество и порядок чайлдов
vasa (2012-02-17 18:07:00) [8]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:06:00) [9]/declaration/declgroup/value.object/instanse/property[@name="caption"]/value
и соблюсти регистр.
только не тхмлдокумент, а ixmldomdocument2
vasa (2012-02-17 17:38:00) [10]<?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 17:26:00) [11]Надо понимать разницу в понятиях елемента и его атрибута.
NAME тут это атрибут.
И откройте для себя xpath.
sniknik (2012-02-17 17:08:00) [12]> вот такого xml:
это не xml, набор строк -
Ошибка синтаксического анализа XML: элемент не найден
Строка 8, символ 16:</VALUE.OBJECT>