Синтаксический анализ Asp XML
-
01-07-2019 - |
Вопрос
Я новичок в 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?
Любая помощь будет высоко оценена
Спасибо Дэмиен
При дополнительном анализе также возвращается некоторый материал soap, поскольку ответ aboce получен от вызова веб-службы.могу ли я по-прежнему использовать приведенный ниже код lukes?
Решение
Вам нужно прочитать о анализаторе 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
Другие советы
Под ASP, я полагаю, вы имеете в виду Классический 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.
Вы могли бы попробовать загрузить xml-файл в объект xmldocument, а затем проанализировать его, используя его методы.