9

创建 XML 文档时,这两种向元素添加文本的方法有什么区别(如果有的话):

Element el = document.createElement("element");
el.setTextContent("This is the text content");

Element el = document.createElement("element");
Text txt = document.createTextNode("This is the text content");
el.appendChild(txt);
4

2 回答 2

9

从文档中Element#setTextContent()

设置时,此节点可能具有的任何可能的子节点都将被删除,如果新字符串不为空或 null,则替换为包含此属性设置为的字符串的单个 Text 节点。

Element#appendChild()不删除现有的孩子(除非指定的孩子已经在树中)。所以

el.setTextContent("This is the text content")

相当于在调用之前el.appendChild()删除所有子项:

for(Node n : el.getChildNodes())
{
    el.removeChild(n);
}
el.appendChild(document.createTextNode("This is the text content"));
于 2013-02-28T05:08:03.073 回答
2

appendChild()

方法在指定元素节点的最后一个子节点之后添加一个节点。

setTextContent()

用这个替换文本内容。

于 2013-02-28T05:08:26.563 回答