2008-08-27 12 views
16

मैं अपनी सामग्री के आधार पर एक्सएमएल-नोड का चयन करने के लिए XPath का उपयोग कैसे कर सकता हूं?मैं अपनी सामग्री के आधार पर एक्सएमएल-नोड का चयन कैसे करूं?

यदि मैं उदा। निम्नलिखित एक्सएमएल है और मैं < लेखक > -node कि रिची लेखक का पूरा नाम पाने के लिए होता है का चयन करना चाहते:

<books> 
    <book isbn='0131103628'> 
     <title>The C Programming Language</title> 
     <authors> 
      <author>Ritchie, Dennis M.</author> 
      <author>Kernighan, Brian W.</author> 
     </authors> 
    </book> 
    <book isbn='1590593898'> 
     <title>Joel on Software</title> 
     <authors> 
      <author>Spolsky, Joel</author> 
     </authors> 
    </book> 
</books> 

उत्तर

23
/books/book/authors/author[contains(., 'Ritchie')] 

या

//author[contains(., 'Ritchie')] 
+5

अपने जैसे XPath newbies के लिए यह ध्यान देने योग्य हो सकता है कि '.'' text() 'के लिए एक छोटा उपनाम है - तो हाँ, यह उत्तर सही काम करता है। – Oliver

+1

मैं इन कार्यों के पूर्ण और मैत्रीपूर्ण संदर्भ कहां पढ़ सकता हूं? – juanpastas

+0

@ ओलिवर - 'टेक्स्ट()' के इस उल्लेख ने मुझे बहुत भ्रमित कर दिया। यह गलत है। ['' 'केवल वर्तमान तत्व है।] (Http://www.tizag.com/xmlTutorial/xpathpredicate.php) –

4

इस के लिए XPath है:

/books/book/authors/author[contains(., 'Ritchie')] 

सी # निम्न कोड में वापसी होगी "रिची, डेनिस एम":

xmlDoc.SelectSingleNode("/books/book/authors/author[contains(., 'Ritchie')]").InnerText; 
+0

+1। विस्तार से स्पष्टीकरण शुरुआती लोगों के लिए सहायक होगा। – Nithesh

4
//author[contains(text(), 'Ritchie')] 
संबंधित मुद्दे

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