1

我在解析 HTML 时使用 JTidy 和 xpath,但暂时解析文本给我带来了一些麻烦,因为它可能包含 b 标签,所以我不想循环它的子节点,而只是在之后删除'b'标签它加载html。

如果从 DOM 文档中,如何删除标签。

Document doc = tidy.parseDOM(url.openStream(), System.out);

例如它的伪代码 -doc.removeTag('<b>');

可能吗 ?

4

1 回答 1

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);
    }
  }
}   
于 2013-04-09T10:29:02.497 回答