Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用纯Java从HTML文档中使用xpath提取内容_Java_Html_Xpath - Fatal编程技术网

使用纯Java从HTML文档中使用xpath提取内容

使用纯Java从HTML文档中使用xpath提取内容,java,html,xpath,Java,Html,Xpath,我想使用XPath和Java从HTML中提取内容。在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和Java从HTML中提取内容。在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实现这一点的文档或示例。有人能建议一个方法吗

谢谢

您可以用它来完成这项任务

下面是一个简单的例子:

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());
}

以下是如何使用Java中的bundled实现这一点:

您可以在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.
为了更快地解析,您可以使用特定的标记/ID


jsoup jsoup.org/apidocs的文档也存在。

jsoup不提供xpath机制,但提供了一种更方便的方法。该问题用xpath标记。此问题的许多相关/重复项-请参阅