2013-08-31 33 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

完美地工作。我一直在尋找這個... –

相關問題