利用HtmlParse读取HTML代码中的table

140471441

使用JS很容易获取HTML中的数据,但是使用java代码取得HTML代码后该怎么处理呢?

用正则或者是匹配的方式可以,但是很麻烦,这里有个工具,叫HtmlParse

以下是使用HtmlParse读取html中的table

public void parseStockData(String subHtml) throws ParserException
{
String AllContent = subHtml;
// 使用后HTML Parser 控件
Parser myParser;
NodeList nodeList = null;
myParser = Parser.createParser(AllContent, "utf-8");
NodeFilter tableFilter = new NodeClassFilter(TableTag.class);
OrFilter lastFilter = new OrFilter();
lastFilter.setPredicates(new NodeFilter[] { tableFilter });
// 获取标签为table的节点列表
nodeList = myParser.parse(lastFilter);
// 循环读取每个table
for (int i = 0; i <= nodeList.size(); i++)
{
if (nodeList.elementAt(i) instanceof TableTag)
{
TableTag tag = (TableTag) nodeList.elementAt(i);
// System.out.println(tag.getChildrenHTML());
System.out
.println("-----------------------------------------------------");
TableRow[] rows = tag.getRows();
System.out.println("----------------------table " + i
+ "--------------------------------");
// 循环读取每一行
for (int j = 0; j < rows.length; j++)
{
TableRow tr = (TableRow) rows[j];
TableColumn[] td = tr.getColumns();
// 读取每行的单元格内容
for (int k = 0; k < td.length; k++)
{
System.out.println(td[k].getStringText());// (按照自己需要的格式输出)
}
}
}
}
}

工具包地址:链接: http://pan.baidu.com/s/1kT0z3Pt 密码: 5ci8