Nic*_*ick 4 c# xml linq-to-xml
我试图从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>
Run Code Online (Sandbox Code Playgroud)
以下内容仅选择根节点和所有子节点.我想将所有'视频'元素放入IEnumerable中.有人能告诉我我做错了什么吗?
IEnumerable<XElement> elements = from xml in _xdoc.Descendants("videos")
select xml;
Run Code Online (Sandbox Code Playgroud)
上面返回一个长度为== 1的集合.它包含根元素和所有子元素.
Ant*_*ram 10
您想要选择后代("视频")."视频"似乎是您的根条目,其中有1个元素.视频的内部元素是您要查询的内容.
例:
var query = from video in document.Descendants("video")
select new
{
Title = video.Attribute("title").Value,
Path = video.Attribute("path").Value
};
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个具有两个字符串属性的IEnumerable匿名类型.否则,您只需选择"视频"并获取一个IEnumerable<XElement>,您将根据需要进一步解析.