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}" }