0

出力として得られるこの xpath 式を使用して//*[@id='info_box']/p[contains(., 'Drafted')]います: http://pastebin.com/kRmCadiw (元のフォーマットの元の出力)

私が欲しいのは、最後の の後にすべてのテキストを取得することです<br>。したがって、使用しました:しかし、単純な ' ' で試しても、 (count(...)=1) でdata(tokenize(//*[@id='info_box']/p[contains(., 'Drafted')], '\s*<br\s*/?>\s*')[last()])完全なテキストが得られます... わかりません何が足りない!<p>

予想される出力は次のとおりです。Drafted by the San Francisco 49ers in the 2nd round (33rd overall) of the 2005 NFL Draft.

4

1 に答える 1

1

最後を検索し、軸ステップを<br/>使用してその後のすべての要素を検索します。following-sibling要素内にないテキストノードも必要なので、ノードテストを使用しますnode()。マークアップではなくデータのみが必要なので、への呼び出しを追加しますdata()

/p/br[last()]/following-sibling::node()/data()

(サンプルデータを提供しなかったので、pastebinに投稿した中間出力から始めます。クエリの最初のステップを最初に自分で追加してください。)

于 2012-08-06T15:53:54.267 に答える