2013-08-31 17 views
7

È possibile avere un'espressione XPath con più contiene valori di elementi diversi?XPath con più contiene su elementi diversi

XML

<data> 
    <person> 
     <firstname>Kerry</firstname> 
     <lastname>Packer</lastname> 
     <address>Crown</address> 
    <person> 
    <person> 
     <firstname>Kerry</firstname> 
     <lastname>Murdoch</lastname> 
     <address>California</address> 
    <person> 
<data> 

PHP

$xml = simplexml_load_string($data); 
$elements = $xml->xpath("(//person)[firstname[contains(., 'Kerr')]] and [lastname[contains(., 'och')]]"); 

Attualmente sopra XPath espressione è contrassegnato come non valido. Tuttavia se lo uso con un elemento,

$xml->xpath("(//person)[firstname[contains(., 'Kerr')]]"); 

quindi funziona correttamente.

risposta

19

si vuole semplicemente

//person[contains(firstname, 'Kerr') and contains(lastname, 'och')] 
+0

Sì .. esattamente questo .. :) –

+0

Perfecto! Stavo per rispondere a me stesso qui lol. Completamente dimenticato questo. Grazie. – doNotCheckMyBlog

+0

Funziona perfettamente. Ho cercato questo ... –

Problemi correlati