2013-08-31 23 views
7

Có thể có biểu thức XPath có nhiều giá trị phần tử khác nhau không?XPath có chứa nhiều thành phần khác nhau

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

Hiện nay trên XPath biểu được gắn cờ là không hợp lệ. Tuy nhiên, nếu tôi sử dụng nó với một phần tử,

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

thì nó hoạt động tốt.

Trả lời

19

Bạn đơn giản chỉ muốn

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

Có .. chính xác này .. :) –

+0

Perfecto! Tôi chuẩn bị trả lời bản thân mình ở đây lol. Hoàn toàn quên điều này. Cảm ơn bạn. – doNotCheckMyBlog

+0

Hoạt động hoàn hảo. Tôi đã tìm kiếm điều này ... –

Các vấn đề liên quan