Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];

Вниз

Как правильно разбирать xml?   Найти похожие ветки 

 
vegarulez ©   (2009-02-12 09:18) [0]

Доброго времени суток всем мастерам!

У меня при разборе xml вызывает вопрос, как правильно выделить элементы, помеченные жирным и присвояемые им значениякурсивным текстом текстом?
Для выделения Node использую

 List := Node.getElementsByTagName("a");
 memo2.Lines.Append(List.Item[0].Text);


а вот как выделить и прочесть (не знаю как правильно это называется содержимое, или дочерние элементы - те которые выделены жирным текстом, и курсивом) эти значения - не знаю - подскажите.

<response Timeout="60">
 <a>10</a>
 <id>13</id>
 <plt st="1600" trn="123456789" result="13" fs="true">
   <ex name="tracert">10.46.33.33</ex>
   <to>
     <sid>2</sid>
   </to>
 </plt>
 <ex name="B">0.00</ex>
 <ex name="O">-10000.00</ex>
</response>


 
Сергей М. ©   (2009-02-12 09:22) [1]


> не знаю как правильно это называется


Атрибуты это называется.
Соотв-но для доступа пользуй методы, в которых фигурирует слово "атрибут"


 
Сергей М. ©   (2009-02-12 09:22) [2]

http://www.gotdotnet.ru/Forums/XML/407029.aspx


 
vegarulez ©   (2009-02-12 09:26) [3]

Ок. Псп. Попробую.


 
vegarulez ©   (2009-02-16 13:48) [4]

ок... пробую...так и не понял как с помощью

var
 objXMLDoc : IXMLDOMDocument;
 Node, Part : IXMLDOMElement;
 List,ListPrinc : IXMLDOMNodeList;


добится до атрибутов?
там  Item`y нужен на входе integer (Node.attributes.item[]).

Порылся в инете нашёл

var

 XMLDocument1 : TXMLDocument;


Хотя в той статье советуют вместо TXMLDocument использовать IXMLDocument
их столько много, что не понятно чем они вообще кардинально отличаются?...
IXMLDOMDocument;
IXMLDocument ;
TXMLDocument;


сделал вот так:

 XMLDocument1:= TXMLDocument.Create(Application);
 XMLDocument1.XML.Text:=memo1.Text;
 XMLDocument1.Active := true;
 memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.Attributes["Timeout"])) ;
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildValues["a"]));
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildValues["id"]));
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildNodes["plt"].Attri butes["st"]));
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildNodes["plt"].Attri butes["trn"]));
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildNodes["plt"].Attri butes["result"]));
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildNodes["plt"].Attri butes["fs"]));
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildNodes["plt"].Child Values["ex"]));
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildNodes["plt"].Child Nodes["ex"].Attributes["name"]));
memo2.Lines.Append(VarToStr(XMLDocument1.DocumentElement.ChildNodes["plt"].Child Nodes["to"].ChildValues["sid"]));

 XMLDocument1.Active := false;
 XMLDocument1.Free;


Теперь возникает вопрос как прочесть 2 последних значения + 2 последних атрибута??? потому как название узла и название атрибута одинаковые (ex и name) в обоих случаях.


 
Медвежонок Пятачок ©   (2009-02-16 13:52) [5]

SelectSingleNode(/plt[его_индекс]/ex/@name)


 
vegarulez ©   (2009-02-16 13:58) [6]

Медвежонок Пятачок ©   (16.02.09 13:52) [5]

это метод к какому из объектов?


 
Медвежонок Пятачок ©   (2009-02-16 14:00) [7]

к IXMLDomDocument2 или его ноду.
зависит от конкретного XPath


 
имя   (2009-03-25 08:45) [8]

Удалено модератором


 
имя   (2009-03-25 08:45) [9]

Удалено модератором



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
15-1235053626
БарЛог
2009-02-19 17:27
2009.05.03
Стоит ли уезжать из страны?


15-1236093100
boa_kaa
2009-03-03 18:11
2009.05.03
Те, кто ждал - дождались...


4-1208928035
AlexK
2008-04-23 09:20
2009.05.03
TSWStringArray (LPWSTR)


2-1237465592
djkondakov
2009-03-19 15:26
2009.05.03
Перемешать ListBox без повторов


2-1238002705
Alex_C
2009-03-25 20:38
2009.05.03
Ограничения ф-ции Pos?





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