Is it possible to have XPath expression with multiple contains of different element values?
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')]]");
Currently above XPath expression is flagged as invalid. However if I use it with one element, 
$xml->xpath("(//person)[firstname[contains(., 'Kerr')]]"); 
then it works fine.
You simply want
//person[contains(firstname, 'Kerr') and contains(lastname, 'och')]
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With