我在解析HTML时使用JTidy和xpath,但是暂时解析文本会让我有点麻烦,因为它可能包含b标签,所以我不想循环它的子节点但只是删除'b '加载html后的标签。
如果从DOM文档中删除标记。
Document doc = tidy.parseDOM(url.openStream(), System.out);
例如伪代码 - doc.removeTag('<b>');
有可能吗?
答案 0 :(得分:0)
您已将此标记为“jdom”,但您的文档是DOM文档(不是JDOM)。
如果它是是 JDOM,你可以使用相对简单的文档扫描替换元素及其内容。或者,您可以使用自定义SAXHandler来跳过首先添加元素。
使用JDOM,您可以执行以下操作:
for (Iterator <Content> it = document.getDescendants(); it.hasNext(); ) {
Content c = it.next();
if ((c instanceof Element) && "b".equals(((Element)c).getName())) {
Element e = (Element)c;
it.remove();
for (Content k : e.getContent()) {
k.detach();
it.add(k);
}
}
}