2012-11-29 31 views
0

我一直在研究这一整天,无法找到解决方案!将xml节点复制到Java中的新文档中

我想读取XML

<test> 
    <data></data> 
</test> 

和编辑某些数据值,这是我能做到和保存很好。

但我想获得这些更改的值,并将它们添加到新的文档,然后再次更改值。所以,我结束了一个新文档中

<test> 
    <data></data> 
</test> 
<test> 
    <data></data> 
</test> 

我可以使用此代码

TransformerFactory tfactory = TransformerFactory.newInstance(); 
Transformer tx = tfactory.newTransformer(); 
DOMSource source = new DOMSource(testDoc); 
DOMResult output = new DOMResult(); 
tx.transform(source,output); 
nodes.add(output.getNode()); 

创建节点的一个ArrayList,所以我现在有节点,每个具有从模板编辑的独特数据的ArrayList ,但我似乎无法将它们写入一个新的空白文档。这是我所目前

for (Node n:nodes){ 
    Element root = templateDoc.getDocumentElement(); 
    Node copyNode = templateDoc.importNode(n, true); 
    root.appendChild(copyNode); 
} 

尝试写出来,希望templateDoc

希望有人能帮助!

回答

0

有效的XML文档只能有一个root element。如果<test>是根元素,则在根中不能有两个<test>元素。你需要这样的事情:

<tests> 
<test> 
    <data>...</data> 
</test> 
<test> 
    <data>...</data> 
</test> 
</tests> 
+0

ahh好的,我确实有另一个根元素,我需要导入,但我试图让这个工作第一,谢谢 – FredoAF

相关问题