开发者

How do I get a list of child elements from XDocument object?

开发者 https://www.devze.com 2022-12-24 08:46 出处:网络
I am trying to get all of the \"video\" elements and their attributes from an XML file that looks like this:

I am trying to get all of the "video" elements and their attributes from an XML file that looks like this:

<?xml version="1.0" encoding="utf-8" ?>
<videos>
  <video title="video1" path="videos\video1.wma"/>
  <video titl开发者_高级运维e="video2" path="videos\video2.wma"/>
  <video title="video3" path="videos\video3.wma"/>
</videos>

The following will only select the root node and all of the children. I would like to get all of the 'video' elements into the IEnumerable. Can someone tell me what I'm doing wrong?

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

The above returns a collection with a length == 1. It contains the root element and all the children.


You want to select Descendants("video"). "videos" appears to be your root entry, of which there is 1 element. The inner elements of videos are what you want to query.

Example:

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

That gives you an IEnumerable of an anonymous type with two string properties. Otherwise, you could simply select "video" and get an IEnumerable<XElement>, which you would further parse as needed.

0

精彩评论

暂无评论...
验证码 换一张
取 消