2012-10-30 85 views
1

我需要解析靜態JSP/HTML頁面以在批處理模式下識別標籤和標籤。XPath可以用於解析靜態HTML/JSP頁面

程序將運行並讀取給定WAR或文件夾中的視圖文件並解析它。由於它不在運行時DOM將不可用。

所以需要一些方向上可以在使用XPath

回答

3

的XPath被設計爲只XML文檔中來完成。

所以,你必須尋找一個解析器,它可以將JSP/HTML解析成XML文檔。如果您使用的是JSPX而不是JSP,那麼您只需使用Java SE的內置JAXP即可。

InputStream input = getInputStreamOfJspOrHtml(); 
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(input); 
// ... 

不過,如果您使用舊版JSP,可能充滿小腳本,和/或非結構良好的HTML(例如,使用<br>代替<br/>),這不會因爲XML驗證在所有,那麼你最好的辦法就是使用一個寬鬆的HTML解析器,這個解析器可以用無效的語法原諒,比如JTidy

InputStream input = getInputStreamOfJspOrHtml(); 
Document document = new Tidy().parseDOM(input, null); 
// ... 

無論哪種方式,一旦你在你的手中得到了org.w3c.dom.Document,那麼你可以在其上運行的XPath通常的方式。

+0

謝謝BalusC.It非常有用 – Murugesh