2013-08-31 14 views
7

Ist es möglich, XPath Ausdruck mit mehreren enthält verschiedene Element Werte?XPath mit mehreren enthält auf verschiedenen Elementen

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')]]"); 

Aktuell oben XPath Ausdruck als ungültig gekennzeichnet ist. Aber wenn ich es mit einem Element,

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

dann verwenden, funktioniert es gut.

Antwort

19

Sie wollen einfach

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

Ja .. genau dieses .. :) –

+0

Perfecto! Ich wollte mich hier selbst antworten, lol. Habe das komplett vergessen. Vielen Dank. – doNotCheckMyBlog

+0

Funktioniert perfekt. Ich habe danach gesucht ... –