请问htmlparser能否解析以经下载的htm呢,或者请问哪种方法可以解析以下载的htm,如何操作?
我想实现的是将htm中指定标签间的数据(去掉htm代码)显示出来,包括一些拼接操作。例如:
<table>
<tr>
<td>
<p><span>111</span><span>222</span></p>
</td>
<td>
....
</td>
</tr>
<tr>
...
</tr>
</table>
我想实现的是将htm中指定标签间的数据(去掉htm代码)显示出来,包括一些拼接操作。例如:
<table>
<tr>
<td>
<p><span>111</span><span>222</span></p>
</td>
<td>
....
</td>
</tr>
<tr>
...
</tr>
</table>
<p> <span>3【java】 </span> </p>
<table>
<tr>
<td>
....
</td>
<td>
....
</td>
</tr>
<tr>
...
</tr>
</table>
<p> <span>4【ajax】 </span> </p>
....
我的疑问是关于filter过滤的使用:
Parser parser;
String body = "";
parser = new Parser("D:/0105010.htm");
parser.setEncoding("UTF-8");
HtmlPage htmlpage = new HtmlPage(parser);
parser.visitAllNodesWith(htmlpage);
body = htmlpage.getBody().toHtml();
Parser nodesParser;
NodeList nodeList = null;
NodeList nodeList = null;
nodesParser = Parser.createParser(body, "UTF-8");
NodeFilter textFilter = new NodeClassFilter(TextNode.class);
try{
nodeList = nodesParser.parse(textFilter);
}catch (ParserException e){
e.printStackTrace();
}
下面我再转换成数组输出,但是这样会输出全部body内容,因为上面已经有了一个NodeFilter过滤,我的想法是设一个boolean 变量,加一个filter判断span,如果是【java】才做上面红色部分,遇到了比他表示数字+1【的形式,当前是3【到了4【时就停止红色部分操作,这个过滤器应该怎么加呢,我想过滤器的代码大致如下。谢谢各位了
NodeFilter filter = new TagNameFilter("span");
NodeList list = parser.extractAllNodesThatMatch(filter);