以前どこかで読んだことがありますが、今はこの問題について説明することができないので、誰かが私を正しい方向に向けることができれば幸いです.
HTML ドキュメントの標準 XPath 用の XPath セレクターを作成しています。簡単な例を以下に示します (バックグラウンドで xalan を使用する HTMLUnit に含まれていますが、任意の XPath プロセッサを使用できます)。
私が実行した場合:
WebClient webClient = ......;
HtmlPage page = webClient.getPage("http://www.slideshare.com/");
System.out.println(page.getByXPath("/html/body/footer/div/div/div[2]/div[4]/ul/li[2]/a[*]/text()"));
[] という応答が返ってきました。ただし、代わりに実行すると (a[ * ] と a[ /* ] に注意してください:
WebClient webClient = ......;
HtmlPage page = webClient.getPage("http://www.slideshare.com/");
System.out.println(page.getByXPath("/html/body/footer/div/div/div[2]/div[4]/ul/li[2]/a[/*]/text()"));
[Developers Section] という応答が返ってきます。
ワイルドカードを引数として追加する位置述語が可能です (つまり [ * ])。ただし、一部のノード/タグ (h1、h2...、p、b、strong などのテキスト ノードと、li または ul などの他の HTML タグで特に気付きました) では、ワイルドカードの前にスラッシュが必要になる場合があります (つまり、[ / * ]) 結果を取得します。
誰かがこれが何を意味するかについての背景を提供してもらえますか? Web または XPath 仕様でこれへの参照を見つけることができません。