3
String html = Jsoup.connect(url).timeout(1000*1000).get().html();
Document doc = Jsoup.parse(html);
Elements H2 = doc.select("div h2");
for (Element e: H2) {
  //get absolute path of element e
}

Jsoup を使用するだけではそれを行う方法はないようです。そうでない場合、他のJavaパッケージはそれを達成するのに役立ちますか?

4

4 に答える 4

2

Jsoup は、要素から直接 Xpath を取得することをまだサポートしていません。

保留中の実装提案がまだあります。

于 2012-08-03T08:11:01.983 に答える
1

この問題には解決策があります。

むかしむかし、私はこの答えを提供しました:

https://stackoverflow.com/a/4747858/36305

于 2012-08-03T12:54:43.067 に答える
0

要素の「絶対パス」などというものはありません。要素を選択するさまざまなパスがあります。人々がときどき尋ねるそのようなパスの例は次のとおりです。

/a/b/c/d
/a[1]/b[2]/c[3]/d[4]
/*[1]/*[2]/*[3]/*[4]

最初の 2 つのケースの問題は、名前空間が含まれていると機能しないことです。3 番目のパスはその問題を解決しますが、このパスは人々が望むほど有益ではありません。有益であり、名前空間のコンテキストから独立しているパスが必要な場合は、形式の述語を使用するものが必要です*[local-name()='a' and namespace-uri()='......']

要素へのパスを返す多くのライブラリ ルーチンが見つからないということは、名前空間の難しさです。

于 2012-08-03T10:59:17.400 に答える
0

次のリンクでは、jsoup で XPATH を適用する方法について説明しています

jsoup: Java HTML パーサー

この記事の最後に、著者のコメントがあります。

「HTML から特定のデータを抽出したい場合は、Jsoup が最適です。」

于 2012-08-03T08:08:41.343 に答える