Akb*_*bar 2 xml vbscript xml-namespaces xmldom
添加新元素时,我看到xmlns添加了空字符串的属性。我怎样才能避免这种情况?我看到的答案很少,但它们要么是 Java 要么是 .Net。仍然尝试了这些,但它们不起作用。我需要一个 VBScript 的解决方案。
'load the xml file
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.load(strFilePath)
'get all <MainError> nodes in the xml
Set mainNode = objXMLDoc.documentElement.SelectNodes("//MainError")
'get child nodes for the first <MainError> node
Set childNodes = mainNode(0).ChildNodes
Set objErrorNode = objXMLDoc.createElement("ChildError")
objErrorNode.text = "somevalue"
mainNode(0).appendChild(objErrorNode)
Run Code Online (Sandbox Code Playgroud)
输出:
<MainError><ChildError xmlns="">somevalue</ChildError></MainError>
Run Code Online (Sandbox Code Playgroud)
正如在对类似问题的回答中所解释的,您可能会得到空xmlns属性,因为其中一个父元素是使用命名空间定义的,但是您创建了没有命名空间的新子元素。使用createNode而不是createElement创建与祖先节点具有相同命名空间的子元素。
ns = "..." '<-- define namespace string here according to whatever
' namespace is defined in your XML
Set objErrorNode = objXMLDoc.createNode(1, "ChildError", ns)
objErrorNode.text = "somevalue"
mainNode(0).appendChild(objErrorNode)
Run Code Online (Sandbox Code Playgroud)