حدد المزيد ثم عقدة واحدة من XML باستخدام LINQ
سؤال
لدي مثل هذا XML
<root>
<content>
....
</content>
<index>
....
</index>
<keywords>
....
</keywords>
</root>
لكني بحاجة إلى اختيار العقد والعقد.
<content>
....
</content>
<index>
....
</index>
اكتشفت كيفية اختيار عقدة واحدة فقط.
XElement Content = new XElement("content", from el in xml.Elements() select el.Element("content").Elements());
كيف يمكنني الحصول على كلا العقدتين؟
المحلول
var elements =
from element in xml.Root.Elements()
where element.Name == "content" ||
element.Name == "index"
select element;
var newContentNode = new XElement("content", elements);
نصائح أخرى
بمجرد تحميل ملف XML ، يمكنك الحصول على جميع عقد المحتوى من خلال:
var cons = from con in xmlFile.Descendants("content");
وبالمثل ، يمكنك الحصول على عقد الفهرس على النحو التالي:
var idxs = from idx in xmlFile.Descendants("index")
لا أعتقد أنه يمكنك الاستعلام عن عقدتين باستخدام سلسلة استعلام واحدة.
باستخدام Lambda:
var elements = document
.Descendants()
.Where(element => element.Name == "content" || element.Name == "index");
لا تنتمي إلى StackOverflow