Java 单个xpath选择器和结果的细分
假设以下文件:Java 单个xpath选择器和结果的细分,java,xpath,Java,Xpath,假设以下文件: <html> <body> <div> <a href="home.htm">Home</a> </div> <div> <a href="page.htm">Link to a page</a> <b>Bold text</b> <a href="page2.htm"
<html>
<body>
<div>
<a href="home.htm">Home</a>
</div>
<div>
<a href="page.htm">Link to a page</a>
<b>Bold text</b>
<a href="page2.htm">Link to another page</a>
</div>
</body>
</html>
我正在寻找一种方法来对结果进行反向工程,并尽可能简单地提取单个xPath选择器及其关联结果。例如:
/html/body/div[1]/a[1]/text() <-> Home
/html/body/div[2]/a[1]/text() <-> Link to a page
/html/body/div[2]/a[2]/text() <-> Link to another page
/html/body/div[1]/a[1]/text()Home
/html/body/div[2]/a[1]/text()指向页面的链接
/html/body/div[2]/a[2]/text()链接到其他页面
我可以通过遍历DOM树或SAX解析来猜测一些复杂的程序,但看起来太复杂了
有人能想出一种更简单的方法在xPath中实现这个结果吗(也许还需要一些Java的帮助)?基本上,问题是要知道每个标签的每个索引以及每个成功组合的相关结果
谢谢不幸的是,我不懂java 下面是使用nokogiri gem的Ruby代码示例:
require 'nokogiri'
doc = Nokogiri::HTML open('/tmp/input.html')
doc.xpath('//a//text()').each {|a| puts "#{a.path} -> #{a.text}" }
检查功能
position()
可能会有所帮助。
require 'nokogiri'
doc = Nokogiri::HTML open('/tmp/input.html')
doc.xpath('//a//text()').each {|a| puts "#{a.path} -> #{a.text}" }