2013-08-31 30 views
7

是否有可能拥有多个包含不同元素值的XPath表达式?具有多个XPath包含在不同的元素上

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

目前上述XPath表达被标记为无效。但是,如果我使用它与一个元素,

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

然后它工作正常。

回答

19

你只是想

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

是..正是这一点.. :) –

+0

PERFECTO!我正要在这里回答我的自我哈哈。完全忘记了这一点。谢谢。 – doNotCheckMyBlog

+0

完美地工作。我一直在寻找这个... –

相关问题