Помогите с анализом Java Swing HTML - PullRequest
1 голос
/ 03 июня 2010

Я анализирую коллекцию документов HTML с помощью библиотек синтаксического анализа Java Swing HTML, и я пытаюсь изолировать текст между тегами <title>, чтобы я мог использовать их для идентификации документов, но мне трудно это выполнить поскольку метод handleStartTag не имеет доступа к тексту внутри тегов

1 Ответ

1 голос
/ 03 июня 2010

Вы можете использовать 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. Например, тег «
» действителен в HTML, но недопустим в XHTML, поскольку он не закрыт. Это должно быть "
", чтобы быть действительным в XHTML.

...