我试图通过VBScript访问XML元素并且它不起作用,可能是因为命名空间。我尝试了很多不同的方法,但我总是得到错误“VBScript运行时错误:需要对象”
XML:
<?xml version="1.0" encoding="utf-8"?>
<AssetInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://unitedwholesale.com.au/webservices/external/">
<ID>66399</ID>
<AssetLife>3.00</AssetLife>
<BookValue>0.00</BookValue>
<Tag>IT12345</Tag>
</AssetInfo>
的VBScript:
Dim ns
ns = "http://unitedwholesale.com.au/webservices/external/"
oXMLFile.SetProperty "SelectionNamespaces", "xmlns='" & ns & "'"
Set oNode = oXMLFile.SelectSingleNode("/xmlns:AssetInfo/xmlns:Tag").Text
If Not oNode Is Nothing Then
Response.Write oNode
Else
Response.Write oXMLFile.xml
End If
我也试过了:
Set oNode = oXMLFile.SelectSingleNode("//AssetInfo/Tag").Text
和
Set oNode = oXMLFile.SelectSingleNode("/ns:AssetInfo/ns:Tag").Text
......一切都无济于事!
如果最简单的话,我会很高兴抛弃所有命名空间。
欢迎任何建议!
答案 0 :(得分:0)
谢谢@Ansgar Wiechers!你指出我正确的方向。我使用符号名称重新定义了ns变量并使用了它并且它可以工作!
' Configure the namespace
Dim ns
ns = "http://unitedwholesale.com.au/webservices/external/"
oXML.SetProperty "SelectionNamespaces", "xmlns:ns ='" & ns & "'"
WScript.Echo oXML.SelectSingleNode("/ns:AssetInfo/ns:Tag").Text
正确输出!
非常感谢