2011-06-15 7 views
7

मेरे पास XmlDocument है जिसमें एक्सएचटीएमएल तालिका है। के माध्यम से यह तालिका सेल एक समय में एक पंक्ति पर कार्रवाई करने के मैं पाश करने के लिए चाहते हैं, लेकिन नीचे कोड की बजाय नेस्टेड पाश में सभी कक्षों लौटा रहा है सिर्फ उन वर्तमान पंक्ति के लिए:XPath - आप नोड के बाल तत्वों का चयन कैसे करते हैं?

XmlNodeList tableRows = xdoc.SelectNodes("//tr"); 
foreach (XmlElement tableRow in tableRows) 
{ 
    XmlNodeList tableCells = tableRow.SelectNodes("//td"); 
    foreach (XmlElement tableCell in tableCells) 
    { 
     // this loops through all the table cells in the XmlDocument, 
     // instead of just the table cells in the current row 
    } 
} 

क्या बजे मैं गलत कर रहा हूँ? धन्यवाद

उत्तर

13

"।" के साथ आंतरिक पथ प्रारंभ करें। सिग्नल करने के लिए कि आप वर्तमान नोड पर शुरू करना चाहते हैं। एक प्रारंभिक "/" हमेशा एक्सएमएल दस्तावेज़ की जड़ से खोज करता है, भले ही आप इसे सबनोड पर निर्दिष्ट करते हैं।

तो:

XmlNodeList tableCells = tableRow.SelectNodes(".//td"); 

या यहाँ तक कि

XmlNodeList tableCells = tableRow.SelectNodes("./td"); 

उन <td> रों के रूप में शायद सीधे कि <tr> के अधीन हैं।

+0

धन्यवाद, यह तय है। – Nick

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