如何使用XDocument在一个节点中获取多个同名元素
本文关键字:获取 元素 节点 XDocument 何使用 一个 | 更新日期: 2023-09-27 18:18:47
我有一个这样结构的xml:
<news>
<id><![CDATA[1]]></id>
<title><![CDATA[My title]]></title>
<date><![CDATA[17-06-2013]]></date>
<machine><![CDATA[a]]></machine>
<machine><![CDATA[b]]></machine>
<machine><![CDATA[c]]></machine>
<machine><![CDATA[d]]></machine>
</news>
<news>
<id><![CDATA[2]]></id>
<title><![CDATA[My title 2]]></title>
<date><![CDATA[17-06-2013]]></date>
<machine><![CDATA[a]]></machine>
<machine><![CDATA[b]]></machine>
<machine><![CDATA[c]]></machine>
<machine><![CDATA[d]]></machine>
</news>
,我是这样读的:
var datas = from query in loadedData.Descendants("news")
select new News
{
Title = (string)query.Element("title"),
Id = (string)query.Element("id"),
StrDate = (string)query.Element("date"),
list = query.Elements("machine")
};
代码
list = query.Elements("machine")
是行不通的。如何获取标签为"machine"的元素列表
下面提到的代码应该可以运行。我把list看作list
的对象var datas = from query in loadedData.Descendants("news")
select new News
{
Title = (string)query.Element("title"),
Id = (string)query.Element("id"),
StrDate = (string)query.Element("date"),
list = (from xele in query.Descendants("machine")
select xele.Value).ToList<string>();
};