كيف أحصل على قائمة عناصر الأطفال من كائن XDocument؟

StackOverflow https://stackoverflow.com/questions/2542184

  •  23-09-2019
  •  | 
  •  

سؤال

أحاول الحصول على جميع عناصر "الفيديو" وسماتها من ملف XML الذي يشبه هذا:

<?xml version="1.0" encoding="utf-8" ?>
<videos>
  <video title="video1" path="videos\video1.wma"/>
  <video title="video2" path="videos\video2.wma"/>
  <video title="video3" path="videos\video3.wma"/>
</videos>

ما يلي سيختار فقط عقدة الجذر وجميع الأطفال. أرغب في الحصول على جميع عناصر "الفيديو" في غيرها. هل يمكن لأحد أن يخبرني بما أفعله خطأ؟

 IEnumerable<XElement> elements = from xml in _xdoc.Descendants("videos")
                           select xml;

يعيد أعلاه مجموعة بطول == 1. تحتوي على عنصر الجذر وجميع الأطفال.

هل كانت مفيدة؟

المحلول

تريد تحديد أحفاد ("فيديو"). يبدو أن "مقاطع الفيديو" هي إدخال الجذر الخاص بك ، والذي يوجد عنصر واحد. العناصر الداخلية لمقاطع الفيديو هي ما تريد الاستعلام عنه.

مثال:

var query = from video in document.Descendants("video")
            select new
            {
                Title = video.Attribute("title").Value,
                Path = video.Attribute("path").Value
            };

يمنحك هذا نوعًا من نوع مجهول مع خصائص سلسلة. خلاف ذلك ، يمكنك ببساطة تحديد "فيديو" والحصول على IEnumerable<XElement>, ، والتي ستقوم بزيادة التحليل حسب الحاجة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top