xml - 使用 vbscript 创建 XML 元素时如何避免 xmlns 属性?

标签 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)

输出:

<MainError><ChildError xmlns="">somevalue</ChildError></MainError>

最佳答案

this answer 中所述对于类似的问题,您可能会得到空的 xmlns 属性,因为父元素之一是使用 namespace 定义的,但您创建的新子元素没有 namespace 。使用 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)

关于xml - 使用 vbscript 创建 XML 元素时如何避免 xmlns 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26753606/

相关文章:

vbscript - 如何处理函数调用中的空参数?

相当于 vbscript setlocale 的 Javascript

Xml 命名空间破坏了我的 xpath!

不合格属性名称的 XML 默认命名空间?

Java:XML 解析器

java - 具有相同名称的 Jackson XML 标记和属性

java - 使用带有 namespace 和模式的 Jaxb 进行 XML 解码

php - HTTPS PHP 大型 XML 负载无法通过回显到达客户端

vbscript - CScript/WScript 防止错误被阻塞

android - 切换 xmlns 属性