如何从元素获取子元素数组?

时间:2019-08-09 12:30:00

标签: c# linq linq-to-xml

我的xml看起来像这样

<stock name="Fish">
    <eqn>100</eqn>
    <inflow>Spawns</inflow>
    <outflow>Deaths</outflow>
    <outflow>Flow_1</outflow>
    <non_negative/>
</stock>

我的代码看起来像这样

var stockList = from q in variable.Descendants(ns + "stock")
select new {
    name = q.FirstAttribute.Value,
   initial = q.Element(ns + "eqn").Value,
   inflow = q.Element(ns + "inflow").Value,
   outflow = q.Element(ns + "outflow").Value
};

这只给我第一个流入和第一个流出,但是有两个流出,因此我需要将每个流出都存储在一个数组中。

1 个答案:

答案 0 :(得分:0)

您可以使用public IEnumerable<XElement> Elements (XName name) method。它返回该元素具有匹配名称的所有子元素。

outflow = q.Elements(ns + "outflow").Select(el => el.Value).ToArray()

outflow = (from el in q.Elements(ns + "outflow") select el.Value).ToArray()