Форум: "Начинающим";
Текущий архив: 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.01 c