كيف أحصل على قائمة عناصر الأطفال من كائن XDocument؟
-
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>
, ، والتي ستقوم بزيادة التحليل حسب الحاجة.
لا تنتمي إلى StackOverflow