向xml写入的问题

来源:百度知道 编辑:UC知道 时间:2024/05/20 03:24:26
我想在不改变一个xml文件的前提下添加一个元素node(可以没有值)
首先,我用DocumentBuilder的parse解析出了一个xml文件的Document的doc,然后我是这样做的:
Element e=doc.createElement("node");
doc.appendChild(e);
这时候抛出异常,说是这个地方不允许插入结点。在获取Document后没有对其做任何改变。后来又用DocumentDuilder的newDocument方法获取一个新的document对象,并用了它的importNode(doc.getDocumentElement(),true)来导入,导入是成功了,但新的Document还是没法写,同样的异常。用DocumentDuilder的newDocument获取document后,可以用appendChild。到底是怎么回事呢?改怎么添加呢???

appendChild()是element的方法,对于新建的空doc来说,append会把node作为doc的root element,对于解析出来的doc来说,由于其root element已经存在,就不能再append了(well formatted xml只能有一个root),如果想挂在root下可以这样做
Node node = doc.getFirstChild();
node.appendChild(doc.createElement("xx"));

加油!