我试图从一个只读取1个XML文件的VBScript中获得一个输出。此XML文件位于C:\scripts\license.xml。
<?xml version="1.0" encoding="utf-8"?>
<License xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XM LSchema-instance" xmlns="http://tempuri.org/License.xsd">
<Network>
<NetworkName>TestName</NetworkName>
<NetworkID>29</NetworkID>
<Region>1</Region>
<MaxDisplays>375</MaxDisplays>
<Expiry>2017-05-25</Expiry>
<Issued>2016-12-11</Issued>
<Communicator>ZZ007007007</Communicator>我想使用VBScript来监视xml文件中的过期标记。
Dim licDate
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.load("C:\scripts\license.xml")
licDate = xmlDoc.getElementsByTagName("Expiry").item(0).text
itemInfo= licDate
MsgBox itemInfo似乎无法让这段代码正常工作。我得到了错误: Object必需:‘xmlDoc.getElementsByTagName(.).item(.)’
发布于 2016-12-13 14:42:07
As on MSDN
getElementsByTagName方法模拟提供的参数与IXMLDOMElement的tagName属性结果的匹配。执行时,它不识别或支持命名空间。相反,您应该使用selectNodes方法,它在某些情况下速度更快,可以支持更复杂的搜索。
因此,您有两个选择--按文档状态执行,或者手动遍历每个标记。
xmlDoc.setProperty "SelectionNamespaces", "xmlns:default='http://tempuri.org/License.xsd'"
Set expiry = xmlDoc.selectSingleNode("//default:Expiry")
Wscript.Echo expiry.text2017-05-25
Set nodeList = xmlDoc.getElementsByTagName("*")
For index = 0 To nodeList.Length - 1
Set element = nodeList.item(index)
If element.tagName = "Expiry" Then
Wscript.Echo element.text
End If
Nexthttps://stackoverflow.com/questions/41122255
复制相似问题