Я загружаю файл XML в файл VBScript с помощью
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, так как он нам предоставлен.