2010-06-03 102 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中有效。