解析html或者xml可以選用:
DocumentBuilder或者HtmlCleaner
DocumentBuilder與js中document沒有太大的區別,而且不適用,在此不過多介紹。
進入正題:
HtmlCleaner是一個開源的Java語言的Html文檔解析器。HtmlCleaner能夠重新整理HTML文檔的每個元素並生成結構良好(Well-Formed)的 HTML 文檔。默認它遵循的規則是類似於大部份web
瀏覽器為創
文檔對象模型所使用的規則。然而,用戶可以提供自定義tag和規則組來進行過濾和匹配。它被設計的小,快速,靈活而且獨立。HtmlCleaner也可用在Java代碼中,當命令行工具或Ant任務。 解析后編程輕量級文檔對象,能夠很容易的被轉換到DOM或者JDom標准文檔,或者通過各種方式(壓縮,打印)連續輸出XML。
代碼部分:
首先我們要創建一個HtmlCleaner
HtmlCleaner htmlCleaner = new HtmlCleaner();
然后我們就可以用他來獲取文件了。
TagNode tagNode= htmlCleaner.clean(content);
content可以是文件,也可以是hmtl字符串。
主要方法:
Object[] tbodyNodeArray = tagNode.evaluateXPath(XPath);
這里XPath為你要讀取的目錄,可以是/body/table[2]/tbody/tr/td[2]/table[4]/tbody/tr/td/table/tbody
這樣,直接讀取到table。
也可以直接讀取你所需要的值,這里xpath的目錄怎么獲取呢?
首先你需要安裝一個火狐瀏覽器,然后在插件中找到火狐調試模式插件。然后再你想要讀取的html中按f12鍵,就會有顯示html中內容直接上截圖以便大家能夠更清晰的理解:

這里從body中選取你要讀取的內容如圖:

然后右鍵復制xpath,就可以讀取到你要內容了。
直接把目錄給到td或者table都可以。給大家貼一段我的代碼,相信大家就可以清晰的知道步驟了:
tagNode = htmlCleaner.clean(content); Object[] tbodyNodeArray = tagNode.evaluateXPath(XPath); for (Object tbodyNode : tbodyNodeArray) {//tbody TagNode tbody = (TagNode) tbodyNode; Object[] trNodeArray = tbody.getChildTags(); for (Object trNode : trNodeArray) {//tr TagNode tr = (TagNode) trNode; Object[] tdNodeArray = tr.getChildTags(); for (Object tdNode : tdNodeArray) {//td TagNode td = (TagNode) tdNode; //td.getText(); //輸出值 } } }
以上就是xpath解析步驟,相信可以給大家一個思路了