【问题标题】:How to get array of subelements from an element?如何从元素中获取子元素数组?
【发布时间】:2019-12-17 04:46:55
【问题描述】:

我的 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
};

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

【问题讨论】:

  • 不客气。另外,由于您是 StackOverflow 的新手,我想通知您,您可以通过勾选答案旁边的勾号来为好的答案投票并接受对您帮助最大的答案。在本网站上,点赞或接受的答案都算作“感谢”。

标签: c# linq linq-to-xml


【解决方案1】:

您可以使用public IEnumerable&lt;XElement&gt; 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()

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 2013-08-24
    • 1970-01-01
    • 2013-08-28
    • 2015-11-22
    • 1970-01-01
    • 2013-06-13
    • 2020-10-30
    • 1970-01-01
    相关资源
    最近更新 更多