Извлечение содержимого с помощью xpath из документа HTML с использованием чистой Java - PullRequest
0 голосов
/ 19 марта 2012

Я хочу извлечь контент из HTML, используя xpaths, используя Java.В ruby ​​я могу сделать это используя nokogiri, как показано здесь.

xpath = '/html/body/div/div[2]/div[2]/div/div[2]/div[3]/p'  
doc = Nokogiri::HTML(open('test_001_html64.html'))  
doc.xpath().each do |link|  
puts link.content  
end  

Я хочу сделать это на чистой Java.Я посмотрел на Jsoup, но не смог найти ни документации, ни примера, использующего xpath для этого.Может кто-нибудь предложить способ?

Спасибо

Ответы [ 3 ]

1 голос
/ 19 марта 2012

Вот как вы можете сделать это с JAXP (в комплекте на Java): Руководство по JAXP

0 голосов
/ 19 марта 2012

Вы можете легко сделать это в jsoup.

Document doc = Jsoup.connect("test_001_html64.html").get();
Elements info = doc.getElementsByTag("html");
//iterate recursively to the desired location in the dom tree.

Для более быстрого анализа вы можете использовать определенные теги / идентификаторы.

Документация для jsoup (jsoup.org/apidocs) также существует.

0 голосов
/ 19 марта 2012

Вы можете использовать HtmlUnit для этой задачи.

Вот простой пример:

final WebClient webClient = new WebClient();
final HtmlPage startPage = webClient.getPage("http://www.google.com/");
List<DomNode> nodes = page.getByXPath("/html/body/div/div[2]/div[2]/div/div[2]/div[3]/p");
for (DomNode node : nodes) {
    System.out.println(node.getNodeName());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...