Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.009 c
15-1235882735
KilkennyCat
2009-03-01 07:45
2009.05.03
Чтой-то было тут, пока я спал ? О_0


15-1235856601
Юрий
2009-03-01 00:30
2009.05.03
С днем рождения ! 1 марта 2009 воскресенье


15-1235329550
Б
2009-02-22 22:05
2009.05.03
Где можно скачать справку по DirectDraw?


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


2-1238013715
mreg
2009-03-25 23:41
2009.05.03
Не удается вывести изображение на форму Без VCL!




   Наверх