2010-01-04 16 views
44

मैं एक पार्स किए गए XML दस्तावेज़ से किसी विशेष आंतरिक टेक्स्ट के साथ तत्व निकालने का प्रयास कर रहा हूं। मुझे पता है कि मैं एक ऐसे तत्व का चयन कर सकता हूं जिसमें //myparent[mychild='foo'] का उपयोग करके एक विशेष आंतरिक टेक्स्ट वाला बच्चा हो, लेकिन मैं वास्तव में इस उदाहरण में "mychild" तत्व का चयन करना चाहता हूं।आंतरिक टेक्स्ट द्वारा XPath चयन

<myparent> 
    <mychild> 
    foo 
    </mychild> 
</myparent> 

"foo" के लिए XPath क्वेरी क्या होगी जो "mychild" नोड वापस कर देगी?

उत्तर

69

क्या आपने यह कोशिश की है?

//myparent/mychild[. = 'foo'] 
+4

या // myparent [mychild = 'foo'] –

+0

@subtenante: धन्यवाद, यही वही है जो मुझे चाहिए था। – kdt

+2

@ मैट: यदि ओपी माईचल्ड तत्व का चयन करना चाहता है, तो आपका समाधान काम नहीं करेगा, यह मायपेरेंट तत्व का चयन करेगा। – glmxndr

3

मैट यह कहा है, लेकिन पूर्ण समाधान:

//myparent/mychild[text() = 'foo'] 

वैकल्पिक रूप से, आप self अक्ष के लिए शॉर्टकट का उपयोग कर सकते // myparent [mychild = 'foo']/mychild

+0

यह "myparent" के सभी बच्चे नोड्स को खोजता है जहां "myparent" के "mychild" में "foo" को आंतरिक पाठ के रूप में "foo" है। – Civa

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