2008-10-27 13 views
22

निम्नलिखित एक्सएमएलयह निर्धारित करने के लिए कि XElement.Elements() में एक विशिष्ट नाम वाला नोड है या नहीं?

<Order> 
    <Phone>1254</Phone> 
    <City>City1</City> 
    <State>State</State> 
</Order> 

मैं बाहर है कि क्या XElement "शहर" नोड शामिल है या नहीं पता लगाने के लिए चाहते हो सकता है के लिए उदाहरण के लिए।

उत्तर

50

बस Elements के लिए अन्य अधिभार का उपयोग करें।

bool hasCity = OrderXml.Elements("City").Any(); 
+2

("MyNode") की जरूरत है या का उपयोग वंशज। किसी भी() अगर आप कहाँ है के बारे में परवाह नहीं है पेड़ में। – jcollum

+0

CS1061: 'System.Collections.Generic.IEnumerable ' फ़ाइल के शीर्ष पर 'Any' –

+0

@AlanBaljeu जोड़ने के लिए "System.Linq" का उपयोग नहीं करता है। यह एक्सटेंशन विधि System.Linq.Enumerable.An उपयोग करने की अनुमति देता है। –

4

थोड़ा समय के बाद से मैं XLinq किया गया है, लेकिन यहाँ मेरी WAG जाता है:

from x in XDocument 
where x.Elements("City").Count > 0 
select x 

;

1

डेविड का सबसे अच्छा है, लेकिन अगर आप चाहते हैं आप अपने खुद के विधेय लिख सकते हैं अगर आप कुछ कस्टम तर्क OrderXML.Elements("City").Exists(x=>x.Name =="City")

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

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