我有一个要求,我想在xhtml文件中添加正文内容。我有一个带有空身体标签的xhtml文件。所以,我想通过java使用解析器添加正文内容,所以我正在做一些像下面这样的事情,但它不起作用..
任何人都可以说出原因
org.w3c.dom.Document document=null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
document = factory.newDocumentBuilder().parse(newFile);
NodeList list =document.getElementsByTagName("body");
for (int i = 0; i < list.getLength(); i++) {
Node addBody = list.item(i);
addBody.setTextContent(bodyContent.toString());
System.out.println("text content"+addBody.getTextContent());
}
在bodyContent中我有一些信息,我想在newFile的主体内追加。即使我使用方法setNodeValue(),它也不适合我。什么事都错了?
我将addBody值改为'[body:null]';如何指向那个身体节点?
请给我任何指示..
提前致谢..
答案 0 :(得分:1)
修改dom树时,在内存中修改它,但此dom树所在的原始文件不受影响。您需要将修改后的dom树写入文件,以便保留您在内存中所做的更改。
这与在StringBuilder中读取整个文件完全相同。修改StringBuilder不会神奇地将新内容写入文件。
有关将DOM树写入文件的示例代码,请参阅http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html。
答案 1 :(得分:0)
节点值?你的意思是文本节点? 如果是这样,你应该创建一个新的文本节点并将其附加到addBody。您只需在TextNode对象中调用setNodeValue即可设置文本内容。 请检查http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Document.html#createTextNode%28java.lang.String%29