2010-07-12 10 views
5

द्वारा xml में कोई तत्व ढूंढें मैं आंतरिक पाठ के आधार पर फ़ाइल के रूट तत्व से xml तत्व खोजने की कोशिश कर रहा हूं। मैं लेकिन फ्लॉप काम इस की कोशिश की है:अपने आंतरिक पाठ

rootElRecDocXml.SelectSingleNode("/ArrayOfRecentFiles[name='"+mFilePath+"']"); 

मैं पुराने स्कूल रास्ता तत्व द्वारा सभी फाइल तत्व पार करने के लिए जानते हैं, लेकिन मुझे नहीं लगता है कि क्या करना चाहते हैं।

कृपया ध्यान दें कि: मेरे मूल तत्व नाम ArrayOfRecentFiles है और मेरे बच्चे तत्व नाम RecentFile

उत्तर

5

हमें xml देखना होगा; @Lee सही दृष्टिकोण यहाँ है, तो जैसे कुछ देता है:

var el = rootElRecDocXml.SelectSingleNode(
      "/ArrayOfRecentFiles/RecentFile[text()='"+mFilePath+"']"); 

(अपने संपादित लेने/खाते में उत्तर)

हालांकि! वहाँ gotchas के बहुत सारे हैं:

  • क्वेरी केस-संवेदी
  • white-space महत्वपूर्ण हो जाएगा (ताकि <foo>abc</foo><foo> abc[newline]</foo> आदि के लिए अलग है - डिट्टो गाड़ी वापसी)
  • नामस्पेस महत्वपूर्ण है, इसलिए कर रहे हैं आप .SelectSingleNode("/alias:ArrayOfRecentFiles[text()='"+mFilePath+"']", nsmgr);, जहां nsmgr नाम स्थान-प्रबंधक

एक पूरा उदाहरण के लिए है, जो मेल खाता आवश्यकता हो सकती है अपनी टिप्पणी:

XmlDocument rootElRecDocXml = new XmlDocument(); 
rootElRecDocXml.LoadXml(@"<ArrayOfRecentFiles> <RecentFile>C:\asd\1\Examples\8389.atc</RecentFile> <RecentFile>C:\asd\1\Examples\8385.atc</RecentFile> </ArrayOfRecentFiles>"); 
string mFilePath = @"C:\asd\1\Examples\8385.atc"; 
var el = rootElRecDocXml.SelectSingleNode(
    "/ArrayOfRecentFiles/RecentFile[text()='" + mFilePath + "']"); 

यहाँ, elनहींnullSelectSingleNode कॉल के बाद है। यह नोड पाता है।

+0

ऊपर मेरी एक्सएमएल – PUG

+0

है यह मेरा एक्सएमएल है: C: \ asd \ 1 \ उदाहरण \ 8389.atc C: \ asd \ 1 \ उदाहरण \ 8385.atc \t PUG

+0

@jaminator - अद्यतन देखें –

3

आप उपयोग करने के लिए नीचे के रूप में एक तत्व के भीतर पाठ के खिलाफ जांच करने की आवश्यकता "() पाठ" कर रहे हैं।

rootElRecDocXml.SelectSingleNode("/ArrayOfRecentFiles[text()='"+mFilePath+"']"); 
+0

यह शून्य – PUG

+0

लौटा रहा है, इसे आजमाएं, यह नहीं पता था कि आपके पास अतिरिक्त बच्चा नोड स्तर रूट है ILRecDocXml.SelectSingleNode ("/ ArrayOfRecentFiles/RecentFile [text() = '" + mFilePath + "']"); –

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