2014-11-05 59 views
2

添加新元素時,我看到xmlns屬性獲得添加了空字符串。我怎樣才能避免這種情況?我看到了很少的答案,但它們是Java或.Net。儘管如此,但他們不工作。我需要一個VBScript的解決方案。如何在使用vbscript創建XML元素時避免xmlns屬性?

'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> 

回答

2

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) 
相關問題