2013-08-31 8 views
7

क्या XPath अभिव्यक्ति होना चाहिए जिसमें विभिन्न तत्व मानों के एकाधिक शामिल हैं?एकाधिक तत्वों के साथ XPath विभिन्न तत्वों पर

एक्सएमएल

<data> 
    <person> 
     <firstname>Kerry</firstname> 
     <lastname>Packer</lastname> 
     <address>Crown</address> 
    <person> 
    <person> 
     <firstname>Kerry</firstname> 
     <lastname>Murdoch</lastname> 
     <address>California</address> 
    <person> 
<data> 

पीएचपी

$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

पूरी तरह से काम करता है। मैं इसके लिए खोज कर रहा हूं ... –

संबंधित मुद्दे