【问题标题】:How to avoid xmlns attribute when creating XML element using vbscript?使用 vbscript 创建 XML 元素时如何避免 xmlns 属性?
【发布时间】:2014-11-05 09:30:23
【问题描述】:

添加新元素时,我看到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>

【问题讨论】:

    标签: xml vbscript xml-namespaces xmldom


    【解决方案1】:

    正如this answer 中对类似问题的解释,您可能会得到空的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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 2022-11-12
      • 2013-06-01
      • 1970-01-01
      • 2023-03-24
      • 2020-10-09
      相关资源
      最近更新 更多