Главная страница
    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.072 c
2-1334441877
novichek
2012-04-15 02:17
2013.03.22
TDateTimePicker


2-1336062569
pr20122012
2012-05-03 20:29
2013.03.22
ACCESS SQL UPDATE в зависимости от даты


15-1354088508
asail
2012-11-28 11:41
2013.03.22
Win7 32bit и 8гиг оперативки...


15-1349277864
AV
2012-10-03 19:24
2013.03.22
Задача по математике, 4й класс.


2-1343717574
AV
2012-07-31 10:52
2013.03.22
Поток, организация проверки раз в секунду PostThreadMessage





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