Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.1 c