题
我是 ASP 新手,并且在接下来的几天内有截止日期。我从 Web 服务响应中收到以下 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 响应来自 Web 服务调用。我还可以使用下面的卢克斯代码吗?
解决方案
您需要阅读有关 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 对象中,然后使用它的方法解析它。
不隶属于 StackOverflow