Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.03;
Скачать: CL | DM;

Вниз

Как правильно разбирать 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
15-1236080729
забылпароль
2009-03-03 14:45
2009.05.03
sql 2000 и таблицы на разных серверах. Какой формат имен?


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


15-1236085055
Mephisto
2009-03-03 15:57
2009.05.03
Services


8-1193561865
kas86
2007-10-28 11:57
2009.05.03
Вопрос по JPEG из DLL


3-1220351355
Konrads
2008-09-02 14:29
2009.05.03
Самый быстрый запрос