如何访问以下XML元素或使用VBScript删除命名空间?

时间:2014-01-15 07:07:56

标签: xml vbscript

我试图通过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

......一切都无济于事!

如果最简单的话,我会很高兴抛弃所有命名空间。

欢迎任何建议!

1 个答案:

答案 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

正确输出!

非常感谢