java - org.htmlparser.Parser,需要知道h3之间的什么

时间:2012-03-21 22:18:46

标签: java html-parsing html-parser

htmlparser.Parser, 我有html片段(见下文),我需要获取内容 该 在我的文件中有一堆带有unqiue id的容器div。 我可以得到div和他们的内部HTML很好。我无法想象 如何弄清楚H3标签之间的什么

这段代码适用于div但不适用于h3: 如果找到具有正确ID的h3,我就无法弄清楚如何 获取innerHTML或标签之间的什么。

感谢您的帮助

    parser = new Parser();
    parser.setInputHTML(inHTML);
    parser.setEncoding("UTF-8");
    lstNodes = parser.extractAllNodesThatMatch(  new AndFilter(new TagNameFilter("h3"),
                                                  new HasAttributeFilter("id", "h3_"+num)));

找到它但不返回h3的

之间的数据
 <div class="container" id="container_2">
      <h3 id="h3_2">Adding a few</h3>       
      <div class="maindiv" id="div_2">
          ...new articles in here jus tto flesh it out.
      </div><!--end of div_2-->
  </div>

2 个答案:

答案 0 :(得分:1)

我最终创建了自己的TAG

class H3Tag extends CompositeTag

答案 1 :(得分:1)

你快到了。您可以手动将其投放到HeadingTag,并使用getStringText()在标记之间获取文字。

NodeList nodes = parser.extractAllNodesThatMatch(new AndFilter(new TagNameFilter("h3"),
    new HasAttributeFilter("id", "h3_"+num)));
SimpleNodeIterator nodeIterator = nodes.elements();
while (nodeIterator.hasMoreNodes()) {
    Node node = nodeIterator.nextNode();
    HeadingTag tag = (HeadingTag)node;
    System.out.println(tag.getStringText());
}