1
我需要解析靜態JSP/HTML頁面以在批處理模式下識別標籤和標籤。XPath可以用於解析靜態HTML/JSP頁面
程序將運行並讀取給定WAR或文件夾中的視圖文件並解析它。由於它不在運行時DOM將不可用。
所以需要一些方向上可以在使用XPath
我需要解析靜態JSP/HTML頁面以在批處理模式下識別標籤和標籤。XPath可以用於解析靜態HTML/JSP頁面
程序將運行並讀取給定WAR或文件夾中的視圖文件並解析它。由於它不在運行時DOM將不可用。
所以需要一些方向上可以在使用XPath
的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通常的方式。
謝謝BalusC.It非常有用 – Murugesh