LINQ में यह XML के लिए बेहद आसान है:
XDocument doc = XDocument.Load("test.xml"); // Or whatever
var allElements = doc.Descendants();
उदाहरण के लिए, किसी विशेष विशेषता के साथ सभी तत्वों को खोजने के लिए:
var matchingElements = doc.Descendants()
.Where(x => x.Attribute("foo") != null);
यह मानते हुए कि आप सभी तत्व चाहते थे। यदि आप सभी नोड (टेक्स्ट नोड्स इत्यादि सहित, लेकिन अलग-अलग नोड्स के रूप में विशेषताओं सहित) चाहते हैं तो आप DescendantNodes()
का उपयोग करेंगे।
संपादित करें: LINQ से XML में नेमस्पेस अच्छे हैं। आप उपयोग करेंगे:
var matchingElements = doc.Descendants()
.Where(x => x.Attribute(XNamespace.Xmlns + "aml") != null);
या एक अलग नाम स्थान के लिए:
XNamespace ns = "http://some.namespace.uri";
var matchingElements = doc.Descendants()
.Where(x => x.Attribute(ns + "foo") != null);
स्रोत
2011-09-19 07:16:11
आप कुछ विशेषताओं के लिए जांच करने की जरूरत है, तो आप _every node_ (पाठ नोड, दस्तावेज़ नोड, टिप्पणी नोड) के माध्यम से जाने की जरूरत नहीं है। बस प्रत्येक तत्व नोड, या प्रत्येक विशेषता नोड (यानी LINQ या XSLT के साथ) के माध्यम से जाओ। तत्व नोड्स गुणों के साथ एकमात्र नोड प्रकार हैं। – Abel
यह दस्तावेज़ कितना बड़ा है? क्या यह अनुकूलन योग्य होगा? –
लिंक देखें [http://forums.asp.net/t/1285409.aspx/1](http://forums.asp.net/t/1285409.aspx/1) [http: //www.developerfusion .com/article/4078/पढ़ने-भंडारण और बदलने-एक्सएमएल-डेटा-इन-नेट/5 /] (http://www.developerfusion.com/article/4078/reading-storing-and-transforming-xml -डेटा-इन-नेट/5 /) [http://weblogs.asp.net/karan/archive/2010/04/29/parse-an-xml-file.aspx ](http://weblogs.asp। नेट/करेन/संग्रह/2010/04/2 9/parse-an-xml-file.aspx) – Prasanth