xpath                
            Znajdowanie elementów zawierających określony tekst
        
        
            
    Szukaj…
Znajdź wszystkie elementy z określonym tekstem
Wyobraź sobie następujący kod XML:
<root>
    <element>hello</element>
    <another>
        hello
    </another>
    <example>Hello, <nested> I am an example </nested>.</example>
</root>
 Następujące wyrażenie XPath:
//*[text() = 'hello']
  zwróci <element>hello</element> , ale nie element <another> . Wynika to z faktu, że element <another> zawiera białe znaki otaczające tekst hello . 
 Aby pobrać zarówno <element> i <another> , można użyć: 
//*[normalize-space(text()) = 'hello']
 lub
//*[normalize-space() = 'hello']
  co spowoduje przycięcie otaczających białych znaków przed wykonaniem porównania. Tutaj widzimy, że specyfikator węzła text() jest opcjonalny, gdy używa się normalize-space . 
 Aby znaleźć element zawierający określony tekst, możesz użyć funkcji contains . Poniższe wyrażenie zwróci element <example> : 
//example[contains(text(), 'Hello')]
  Jeśli chcesz znaleźć tekst obejmujący wiele potomków / węzłów tekstowych, możesz użyć . zamiast text() . . odnosi się do całej zawartości tekstu elementu i jego dzieci. 
//example[. = 'Hello,  I am an example .']
 Aby wyświetlić wiele węzłów tekstowych, możesz użyć:
//example//text()
 który zwróci:
- "Witaj, "
 - „Jestem przykładem”
 - „.”
 
 Aby wyraźniej zobaczyć całą zawartość tekstu elementu, można użyć funkcji string : 
string(//example[1])
 Lub tylko
string(//example)
 Cześć, jestem przykładem.
 Ten ostatni działa, ponieważ jeśli zestaw węzłów zostanie przekazany do funkcji takich jak string , XPath 1.0 po prostu spojrzy na pierwszy węzeł (w kolejności dokumentów) w tym zestawie węzłów i zignoruje resztę. 
więc:
string(/root/*)
 wróciłby:
Witaj