使用HTMLParser进行解析

时间:2011-09-03 14:31:47

标签: java

Parser parser = new Parser();
    parser.setInputHTML("d:/index.html");
    parser.setEncoding("UTF-8");
    NodeList nl = parser.parse(null); 
    /*
    SimpleNodeIterator sNI=list.elements();
    while(sNI.hasMoreNodes()){
    System.out.println(sNI.nextNode().getText());}
    */
    NodeList trs = nl.extractAllNodesThatMatch(new TagNameFilter("tr"),true);
    for(int i=0;i<trs.size();i++) {
        NodeList nodes = trs.elementAt(i).getChildren();
        NodeList tds  = nodes.extractAllNodesThatMatch(new TagNameFilter("td"),true);
    System.out.println(tds.toString());

我没有得到任何输出,eclipse显示javaw.exe终止。

1 个答案:

答案 0 :(得分:0)

将资源的路径传递给构造函数。

Parser parser = new Parser("index.html");

解析并打印此页面上的所有div:

Parser parser = new Parser("http://stackoverflow.com/questions/7293729/parsing-using-htmlparser/");
parser.setEncoding("UTF-8");
NodeList nl = parser.parse(null);
NodeList div = nl.extractAllNodesThatMatch(new TagNameFilter("div"),true);
System.out.println(div.toString());

parser.setInputHtml(String inputHtml)没有按照您的想法行事。它将inputHtml视为解析器的html输入。您可以使用构造函数将解析器指向html资源(fileURL)。

示例:

Parser parser = new Parser();
parser.setInputHTML("<div>Foo</div><div>Bar</div>");