Главная страница
    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.077 c
15-1332534602
Юрий
2012-03-24 00:30
2013.03.22
С днем рождения ! 24 марта 2012 суббота


15-1347470775
wl
2012-09-12 21:26
2013.03.22
freecell (win7) в win8?


15-1351557893
Вепрь
2012-10-30 04:44
2013.03.22
Как получить список всех процессов?


2-1346324676
FIL-23
2012-08-30 15:04
2013.03.22
как привязать динамически создаваему кнопку.


2-1342632238
Pcrepair
2012-07-18 21:23
2013.03.22
Передача данных через параметры от функции к функции





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский