xpath                
            特定のテキストを含む要素の検索
        
        
            
    サーチ…
特定のテキストを含むすべての要素を検索する
次のXMLを想像してみてください。
<root>
    <element>hello</element>
    <another>
        hello
    </another>
    <example>Hello, <nested> I am an example </nested>.</example>
</root>
 次のXPath式は次のとおりです。
//*[text() = 'hello']
  <element>hello</element>要素を返しますが、 <another>要素は返しません。これは、 <another>要素にhelloテキストを囲む空白が含まれているためです。 
 <element>と<another>両方を取得するには、 <element>使用できます。 
//*[normalize-space(text()) = 'hello']
 または
//*[normalize-space() = 'hello']
 これは比較を行う前に周囲の空白をトリムします。ここでは、 normalize-spaceを使用しているときにtext()ノード指定子がオプションであることがわかりtext() 。 
特定のテキストを含む要素を検索するには、 contains関数を使用しcontains 。次の式は<example>要素を返します。 
//example[contains(text(), 'Hello')]
 複数の子/テキストノードにまたがるテキストを検索する場合は、使用できます. text()代わりに。 .要素のテキストコンテンツ全体とその子要素を指します。 
//example[. = 'Hello,  I am an example .']
 複数のテキストノードを表示するには、次のコマンドを使用します。
//example//text()
 それは返すでしょう:
- "こんにちは、 "
 - "私は例です"
 - ""
 
また、要素のテキストコンテンツ全体をより明確に見るために、関数stringを使用することができます: 
string(//example[1])
 あるいは単に
string(//example)
 こんにちは、私は例です。
後者は、ノードセットがstringような関数に渡された場合、XPath 1.0はそのノードセット内の最初のノードを(ドキュメント順で)見て残りを無視するため、後者は機能します。 
そう:
string(/root/*)
 返すだろう:
こんにちは
Modified text is an extract of the original Stack Overflow Documentation
        ライセンスを受けた CC BY-SA 3.0
        所属していない Stack Overflow