首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用VBScript读取XML文件中的子标记?

如何用VBScript读取XML文件中的子标记?
EN

Stack Overflow用户
提问于 2016-12-13 13:24:42
回答 1查看 1.3K关注 0票数 0

我试图从一个只读取1个XML文件的VBScript中获得一个输出。此XML文件位于C:\scripts\license.xml。

代码语言:javascript
复制
<?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文件中的过期标记。

代码语言:javascript
复制
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(.)’

EN

回答 1

Stack Overflow用户

发布于 2016-12-13 14:42:07

As on MSDN

getElementsByTagName方法模拟提供的参数与IXMLDOMElementtagName属性结果的匹配。执行时,它不识别或支持命名空间。相反,您应该使用selectNodes方法,它在某些情况下速度更快,可以支持更复杂的搜索。

因此,您有两个选择--按文档状态执行,或者手动遍历每个标记。

代码语言:javascript
复制
xmlDoc.setProperty "SelectionNamespaces", "xmlns:default='http://tempuri.org/License.xsd'"
Set expiry = xmlDoc.selectSingleNode("//default:Expiry")
Wscript.Echo expiry.text

2017-05-25

代码语言:javascript
复制
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
Next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41122255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档