2016-08-04 8 views
2

を閉じた後、私はこのHTMLを持っている: <span id="bla">text</span>more textXPathデータは、タグ

私はtextmore textを取得したいです。

私はこのXPathを持っている: //span[@id="bla"]/text()

私は終了タグとそれの後に来るを取得する方法を見つけ出すことはできません。

more text

答えて

1

<span id="bla">text</span>more textはよく形成されていないとXPathを介して処理することができません。

のコンテキストに入れてみましょう:

<div><span id="bla">text</span>more text</div> 

その後、あなたは、単にdiv、親要素の文字列値を取ることができます:

string(/div) 

として

textmore text 

を取得します要求された。


あなたが望んでいん他の周囲のコンテンツがある場合:

<div>DO NOT WANT<span id="bla">text</span>more text<b/>DO NOT WANT</div> 

あなたはfollowing-sibling::軸とalecxeのリード@従ってください、あなたがしたい部品を組み合わせることconcat()を使用することができます。

は、
concat(//span[@id="bla"], //span[@id="bla"]/following-sibling::text()[1]) 

再び取得

textmore text 

をリクエストしてください。

2

は、要素の「尾部」と呼ばれ、following-siblingを介して取得することができる:単独

//span[@id="bla"]/following-sibling::text() 
+0

両方を同じクエリで取得できますか? – Lior

+1

@Lior:はい、親要素では 'string()'、個々の部分では 'concat()'を使用します(http://stackoverflow.com/a/38778815/290085)。 – kjhughes

関連する問題