首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

应用Cobra解析html, 及其提取table内容的例子

2012-12-27 
使用Cobra解析html, 及其提取table内容的例子。?? ?以下方法读取一个html格式的String,然后把其中的table内

使用Cobra解析html, 及其提取table内容的例子。

?? ?以下方法读取一个html格式的String,然后把其中的table内容读出,存入一个Arralyst, 该list装入的是String[], 即每一个String[]元素代码table的一行。

?

private List parseTable(String htmlStr) throws SAXException, IOException {Reader reader = new StringReader(htmlStr);InputSourceImpl inputSource = new InputSourceImpl(reader,"aaa");UserAgentContext uacontext = new SimpleUserAgentContext();DocumentBuilderImpl builder = new DocumentBuilderImpl(uacontext);Document d = builder.parse(inputSource);HTMLDocumentImpl document = (HTMLDocumentImpl) d;NodeList  nl=document.getElementsByTagName("table");ArrayList<String[]> records=new ArrayList<String[]>();for (int i = 0; i < nl.getLength(); i++) {HTMLTableElementImpl table=(HTMLTableElementImpl)nl.item(i);HTMLCollection rows=table.getRows();for (int j = 0; j < rows.getLength(); j++) {HTMLTableRowElementImpl row =(HTMLTableRowElementImpl)rows.item(j);HTMLCollection cells=row.getCells();ArrayList<String> cellsStr=new ArrayList<String>();for (int k = 0; k < cells.getLength(); k++) {HTMLTableCellElementImpl cell =(HTMLTableCellElementImpl)cells.item(k);cellsStr.add(cell.getTextContent().toString());}records.add(cellsStr.toArray(new String[0]));}}                return records;}
?

?

?? ?由于要解析js,必须要用到Mozzila的rhino包。听说可以禁用js的解析,目前我还不知道如何做,没有仔细查API, 有知道的朋友说一声。

?? ?附一个,由于需要足够大的DropBox空间,如果你也正好需要一个DropBox,请使用我的邀请码注册。很实用的免费文件网盘DropBox 可以访问了。

热点排行