0

次のドキュメントを想定しています。

<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/a/text() -> HomeLink to a pageLink to another page

結果をリバース エンジニアリングし、個々の 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

DOM ツリーまたは SAX 解析をたどることで複雑なプログラムを推測できますが、複雑すぎるように見えます。

xPathでこの結果を達成するためのより簡単な方法を誰かが見つけ出すことができますか? 基本的に問題は、各タグの各インデックスと、成功した各組み合わせの関連結果を知ることです。

ありがとう

4

1 に答える 1

0

残念ながら、私はJavaを知りません。

以下は、nokogiri gem を使用したサンプル Ruby コードです。

require 'nokogiri'
doc = Nokogiri::HTML open('/tmp/input.html')
doc.xpath('//a//text()').each {|a| puts "#{a.path} -> #{a.text}" }
于 2013-08-11T11:14:06.050 に答える