使用xml:lang属性访问XML节点

时间:2019-02-08 16:53:02

标签: xml vbscript

我正在使用以下方式将VBScript文件中的XML文件加载

Set xmlDoc = CreateObject("MSXML2.DOMDocument.3.0")
xmlDoc.Async = "False"
xmlDoc.Load("C:\languageContent.xml")

XML的命名空间设置如下

<languageDefinition xmlns:xml="http://www.w3.org/XML/1998/namespace">

我似乎无法访问文档中的任何文本节点。

我使用了以下

ns = "xmlns:xml='http://www.w3.org/XML/1998/namespace'"
xmlDoc.setProperty "SelectionNamespaces", ns

但是这引发了一个错误,即“ xml”是保留的字符串。

xml如下

<?xml version="1.0" encoding="utf-8"?>
<languageDefinition xmlns:xml="http://www.w3.org/XML/1998/namespace">
    <colourGroups>
    <group id='1' colour='0x5b9bd5'>
        <text xml:lang='en'>Group 1</text>
    </group>
    </colourGroups>
</languageDefinition>

我有以下代码

xmlText = xmlDoc.selectNodes("/languageDefinition/colourGroups/group/text[@xml:lang='en']")(0).text

我希望它输出Group 1

但是相反,我得到了保留字符串'xml'的错误。

如果我将xml文件中的命名空间更改为

<languageDefinition xmlns:blah="http://www.w3.org/XML/1998/namespace">

并将我的vbscript更改为

xmlDoc.setProperty "SelectionNamespaces", "xmlns:blah='" & uri & "'"

然后一切都会按预期进行。

但是...我无法更改提供给我们的xml。

0 个答案:

没有答案