![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с разбором XML-файла. [D7, WinXP]
Shaden © (2005-07-24 13:42:00)Уважаемые мастера, прошу вашей помощи. Имеется вот такой XML-файл, из него надо извлечь данные, находящиеся в тегах name и value:
<?xml version="1.0" ?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>news_id</name>
<value>
<string>4</string>
</value>
</member>
<member>
<name>date</name>
<value>
<dateTime.iso8601>20020627T04:45:50</dateTime.iso8601>
</value>
</member>
<member>
<name>title</name>
<value>
<string>More Standards for Web Services!</string>
</value>
</member>
<member>
<name>full_desc</name>
<value>
<string>WSDL is dead! Long live WSCI! Yep - it's another standard this time at the description layer.
Seems IBM and Microsoft have been ganging up on Sun, as far as the development of web services goes.
It's all here: http://www.theregister.co.uk/content/23/25914.html
All we need now is Oracle to release a few standards to interface to their database via a web service...</string>
</value>
</member>
<member>
<name>author</name>
<value>
<string>ComputerWire</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
Я делаю так (использую TXMLDocument):
XMLDoc.XML.Add(S);
XMLDoc.Active:= true;
root := XMLDoc.DocumentElement;
S:= root.ChildNodes.Nodes['params'].ChildNodes.Nodes['param'].ChildNodes.Nodes['value'].ChildNodes.Nodes['struct'].ChildNode s.Nodes['member'].ChildNodes.Nodes['name'].Text;
ShowMessage(S);
S:= root.ChildNodes.Nodes['params'].ChildNodes.Nodes['param'].ChildNodes.Nodes['value'].ChildNodes.Nodes['struct'].ChildNode s.Nodes['member'].ChildNodes.Nodes['value'].ChildNodes.Nodes['string'].Text;
ShowMessage(S);
Но тут возникает у меня вопрос: как считать следующие данные, которые находятся в следующем теге <member> и как быть, если в <value></value> стоит не <string> </string> (<value><string>ComputerWire</string></value>), а <dateTime.iso8601></dateTime.iso8601> (<value><dateTime.iso8601>20020627T04:45:50</dateTime.iso8601></value>)?
Возможно, я делаю неправильно, просто с XML не работал никогда.
Заранее спасибо за советы.
just_me (2005-07-24 18:42:00) [1]Читай MSXML SDK про методы selectNodes, selectSingleNode, про шаблоны XPath. Без хотя бы элементарного понимания этих вещей от XML мало пользы