使用DOM和java向xhtml添加节点值

使用DOM和java向xhtml添加节点值,java,parsing,xhtml,Java,Parsing,Xhtml,我需要在xhtml文件中添加正文内容。我有一个带有空body标记的xhtml文件。因此,我想使用解析器通过java添加正文内容,所以我正在做一些类似于下面的事情,但它不起作用 有人能说出原因吗 org.w3c.dom.Document document=null; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); document = factory.newDocumentBuilder().parse(

我需要在xhtml文件中添加正文内容。我有一个带有空body标记的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());
}
org.w3c.dom.Document Document=null;
DocumentBuilderFactory工厂=DocumentBuilderFactory.newInstance();
document=factory.newDocumentBuilder().parse(newFile);
NodeList list=document.getElementsByTagName(“body”);
对于(inti=0;i
在bodyContent中,我有一些信息要附加到newFile的主体中。即使我使用了setNodeValue()方法,它也不适用于我。有什么不对吗

我得到的addBody值为“[body:null]”;如何指向身体节点

请给我指点


提前感谢..

节点值?你是说文本节点吗? 如果是这样,您应该创建一个新的文本节点并将其附加到addBody。您只需在TextNode对象中调用setNodeValue即可设置文本内容。
请检查

当您修改dom树时,请在内存中修改它,但此dom树所来自的原始文件不受影响。您需要将修改后的dom树写入文件,以便将所做的更改保留在内存中

这与在StringBuilder中读取整个文件完全相同。修改StringBuilder不会神奇地将新内容写入文件


请参阅将DOM树写入文件的示例代码。

您所说的“不工作”是什么意思?例外?如果是,堆栈跟踪是什么?如果没有,您希望看到什么?您观察到了什么?我没有得到任何异常,但它无法将内容添加到正文中,但我希望将内容添加到正文标记中您的代码工作正常:如果我在带有空正文标记的HTML文件上使用它,我会看到System.out.println行显示的新文本内容。bodyContent.toString()的值是多少,System.out.println行在屏幕上打印的内容是什么?我可以看到System.out.println()的输出,但是addBody.setTextContent(bodyContent.toString());没有附加到新文件中。我可以看到System.out.println()的输出,但可以看到addBody.setTextContent(bodyContent.toString());未附加到新文件中。body.GetContent.toString()包含“helloworld”及其在控制台上的打印,与此相同,但在我使用browserin TestNode对象打开html时不会写入文件没有setNodeValue之类的方法,我喜欢这个TextNode t=new TextNode(“”,“我不想创建新的Textnode,我想将数据附加到文件中的现有节点。是否有任何解决方案请告诉我?谢谢Nizet,这很有用,我可以将数据附加到正文中。