किसी को पता है कि xpath का उपयोग करके नोड की स्थिति कैसे प्राप्त करें?
कहो मेरे पास निम्नलिखित xml है:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
मैं तीसरे <b> नोड (<b> tsr </ b>) का चयन करने के लिए निम्नलिखित xpath क्वेरी का उपयोग कर सकता हूं:
a/b[.='tsr']
जो सब ठीक है और अच्छा है, लेकिन मैं उस नोड की क्रमिक स्थिति को वापस करना चाहता हूं , जैसे कुछ:
a/b[.='tsr']/position()
(लेकिन थोड़ा और अधिक काम!)
क्या यह भी संभव है?
संपादित करें : .net 2 का उपयोग करना भूल गए इसलिए यह xpath 1.0 है!
अद्यतन : जेम्स सुलक के उत्कृष्ट उत्तर का उपयोग करके समाप्त किया गया । उन लोगों के लिए जो C # में मेरे कार्यान्वयन में रुचि रखते हैं:
int position = doc.SelectNodes("a/b[.='tsr']/preceding-sibling::b").Count + 1;
// Check the node actually exists
if (position > 1 || doc.SelectSingleNode("a/b[.='tsr']") != null)
{
Console.WriteLine("Found at position = {0}", position);
}