2009-05-18 90 views
4

我正在處理一些非常不直觀的xml(所有標記都是「TX」,「H」,「VC」)。使用javascript創建一個新的空文檔

我想複製一份這些數據,但所有的標籤都改名爲它們的實際含義。我可以創建一個新的空文檔來將我的新的,很好命名的標籤放入?

我已經試過這樣:

doc = (new DOMParser()).parseFromString("", 'text/xml'); 

,但是當我這樣做,我風與具有子節點,而不是空的文檔。此外,那個孩子的標記名是「parsererror」

那麼,任何想法如何創建一個空文檔?

回答

1

我不認爲你可以創建一個沒有根節點的文檔。你可以創建一個假節點:

doc = (new DOMParser()).parseFromString("<dummy/>", 'text/xml'); 

然而,一個更好的解決方案可能是爲節點名稱創建常量:

// Use different variable names, like RealTxName, if desired 
var REAL_TX_NAME = "TX"; 
var REAL_H_NAME = "H"; 

... 
doc.find (REAL_TX_NAME); 
... 
+0

感謝。我已經考慮過這種方法,可能會結束使用它。我只是在幾個方向上採取幾個步驟,看看哪種方式看起來/感覺更有前途。 – morgancodes 2009-05-18 23:41:00

4

我哈得同樣的問題,我解決了它象下面這樣:

xmlDoc = document.implementation.createDocument("", "", null); 
root = xmlDoc.createElement("description"); 
xmlDoc.appendChild(root); 
alert((new XMLSerializer()).serializeToString(xmlDoc)); 
2

您可以使用以下代碼在符合W3C DOM的瀏覽器(IE9 +及其他)中創建一個空的document

var doc = (new DOMParser()).parseFromString('<dummy/>', 'text/xml'); 
doc.removeChild(doc.documentElement); 
0
var xmldom = require('xmldom'); 
var tree = (new xmldom.DOMImplementation()).createDocument(); 
相關問題