2010-06-03 108 views
1

我解析了Java Swing HTML解析庫中的HTML文檔的集合,並試圖隔離<title>標記之間的文本,以便我可以使用它們來識別文檔,但我有一個很難完成,由於handleStartTag方法沒有標籤幫助Java Swing HTML解析

+0

我對這些庫並不熟悉,但是您可以開始在那裏抓取文本,然後在處理結束標記時停下來嗎? – 2010-06-03 19:33:09

回答

1

您可以使用XPath從HTML拉出數據的內部訪問文本:

String html = //... 

//read the HTML into a DOM 
StreamSource source = new StreamSource(new StringReader(html)); 
DOMResult result = new DOMResult(); 
Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
transformer.transform(source, result); 
Node root = result.getNode(); 

//use XPath to get the title 
XPath xpath = XPathFactory.newInstance().newXPath(); 
String title = xpath.evaluate("/html/title", root); 

然而,HTML必須很好地形成XHTML爲此工作。例如,「<br>」標記在HTML中有效,但在XHTML中無效,因爲它未關閉。它必須是「< br/>」才能在XHTML中有效。