Главная страница
    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.608 c
2-1336066310
igorium
2012-05-03 21:31
2013.03.22
Не отображаются русские буквы в английских Виндовс


15-1352865495
MonoLife
2012-11-14 07:58
2013.03.22
Диалоговое окно выбора папки в играх.


4-1251175537
mamedovvms
2009-08-25 08:45
2013.03.22
Не читает вывод из консоли


15-1332793802
Юрий
2012-03-27 00:30
2013.03.22
С днем рождения ! 27 марта 2012 вторник


15-1343742743
qetuo
2012-07-31 17:52
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский