سؤال

لدي مثل هذا 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");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top