Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.062 c
15-1346364143
Artem
2012-08-31 02:02
2013.03.22
В Visual С++ автоматическая сборка мусора?


15-1337956188
Pit
2012-05-25 18:29
2013.03.22
Кайт Томас, Oracle


2-1330521256
Мальчик
2012-02-29 17:14
2013.03.22
Delphi - ADO - DBF (Ошибка синтаксиса)


15-1337202631
Германн
2012-05-17 01:10
2013.03.22
Подскажите инструмент


15-1348831991
dmi3
2012-09-28 15:33
2013.03.22
for..in..do





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский