XML-синтаксический анализ Asp - PullRequest
       22

XML-синтаксический анализ Asp

5 голосов
/ 18 сентября 2008

Я новичок в asp и у меня есть срок в ближайшие несколько дней. я получаю следующий xml из ответа веб-службы.

print("<?xml version="1.0" encoding="UTF-8"?>
<user_data>
<execution_status>0</execution_status>
<row_count>1</row_count>
<txn_id>stuetd678</txn_id>
<person_info>
    <attribute name="firstname">john</attribute>
    <attribute name="lastname">doe</attribute>
    <attribute name="emailaddress">john.doe@johnmail.com</attribute>
</person_info>
</user_data>");

Как я могу разобрать этот xml в атрибуты asp?

Любая помощь очень ценится

Спасибо Дэмиен

При дополнительном анализе некоторые мыльные данные также возвращаются, поскольку ответ aboce поступает от вызова веб-службы. могу ли я использовать код lukes ниже?

Ответы [ 3 ]

9 голосов
/ 18 сентября 2008

Вам необходимо прочитать о парсере MSXML. Вот ссылка на хороший пример «все в одном» http://oreilly.com/pub/h/466

Некоторое чтение в XPath также поможет. Вы можете получить всю необходимую информацию в MSDN.

Кража кода из Люк отличный ответ для агрегирования:

Dim oXML, oNode, sKey, sValue

Set oXML = Server.CreateObject("MSXML2.DomDocument.6.0") 'creating the parser object
oXML.LoadXML(sXML) 'loading the XML from the string

For Each oNode In oXML.SelectNodes("/user_data/person_info/attribute")
  sKey = oNode.GetAttribute("name")
  sValue = oNode.Text
  Select Case sKey
    Case "execution_status"
    ... 'do something with the tag value
    Case else
    ... 'unknown tag
  End Select
Next

Set oXML = Nothing
6 голосов
/ 18 сентября 2008

Под ASP я предполагаю, что вы имеете в виду Classic ASP? Попробуйте:

Dim oXML, oNode, sKey, sValue

Set oXML = Server.CreateObject("MSXML2.DomDocument.4.0")
oXML.LoadXML(sXML)

For Each oNode In oXML.SelectNodes("/user_data/person_info/attribute")
  sKey = oNode.GetAttribute("name")
  sValue = oNode.Text
  ' Do something with these values here
Next

Set oXML = Nothing

В приведенном выше коде предполагается, что у вас есть XML в переменной с именем sXML. Если вы используете это через запрос ServerXMLHttp, вы должны иметь возможность использовать свойство ResponseXML вашего объекта вместо oXML выше и вообще пропустить шаг LoadXML.

0 голосов
/ 18 сентября 2008

Вы можете попробовать загрузить xml в объект xmldocument и затем проанализировать его, используя его методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...