使用W3C文档对象模型如何为特定文本插入标记

时间:2013-12-06 04:27:29

标签: java html html-parsing w3c

例如,我有像这样的html内容。

<div>go to the text from here.<br> from there <br> Go to the text</div>

在上面的内容中,我想单独为单词插入span标签,如下面的输出使用java。

我正在使用org.w3c.dom包。

我尝试但未能取得成功

Element e = doc.createElement("span");
String text = preElement.getTextContent();
if(text.indexOf("text"){
e.setTextContent("text");
}
// Afterwards how to insert this to document. How to use insertBefore method for the //inbetween text.

预期产出:

<div>go to the <span>text</span> from here.<br> from there <br> Go to the <span>text</span></div>

请帮忙。

1 个答案:

答案 0 :(得分:1)

您必须在文本节点上使用splitText方法将其拆分为三个节点,隔离您需要在元素中包装的单词。然后,您只需要将刚刚隔离的文本节点(使用replaceChild)替换为新元素。无需创建新的文本节点,只需将删除的文本节点放在添加的元素中即可。

Java实现参考:http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Text.html#splitText%28int%29 http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Node.html#replaceChild%28org.w3c.dom.Node,%20org.w3c.dom.Node%29