मुझे एक विशेषता के मान के पैटर्न द्वारा एक्सएमएल तत्व खोजना होगा।

मैं जिस मौजूदा एक्सएमएल फाइल पर काम कर रहा हूं वह इस तरह दिखती है:

<root>
   <items>
      <item Id=“001” name=“Foo001”></item>
      <item Id=“002” name=“Foo002”></item>
      <item Id=“003” name=“Boo001”></item>
   </items>
</root>

मुझे उस तत्व की खोज करने की आवश्यकता है जिसका नाम विशेषता का मान "बू" से शुरू होता है

मैंने खोज करने के लिए निम्नलिखित कोड (गूगल पर पाया गया) का उपयोग करने की कोशिश की है लेकिन यह काम नहीं कर रहा है

XmlDocument doc = new XmlDocument();
doc.Load(myXmlFilePath);
XmlNode match = doc.SelectSingleNode(“/root/items/item[substring(@name,1,3)=‘Boo’]”);
Console.WriteLine(match.Value.ToString());

क्या कोई मुझे दिखा सकता है कि मुझे सी # में जो चाहिए वह कैसे कार्यान्वित करें?

0
Chengjun Guo 22 अगस्त 2019, 11:56

1 उत्तर

सबसे बढ़िया उत्तर

आप अपने एक्सएमएल और एक्सपीएटीएच दोनों में गलत उद्धरणों का उपयोग कर रहे हैं।

  • अपने XML में " से "" बदलें

  • अपने XPATH में 'से' बदलें

    <root>
     <items>
         <item Id="001" name="Foo001"></item>
         <item Id="002" name="Foo002"></item>
         <item Id="003" name="Boo001"></item>
     </items>
    </root>
    
    XmlNode match = doc.SelectSingleNode("/root/items/item[substring(@name,1,3)='Boo']");
    

परिणाम पढ़ने के लिए:

// read the attribute name
Console.WriteLine(match.Attributes["name"].Value);

// read the text in item        
Console.WriteLine(match.InnerText);
2
EylM 22 अगस्त 2019, 14:39