2009-05-18 92 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(); 
相关问题