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

Posted

技术标签:

【中文标题】如何从元素中获取子元素数组?【英文标题】: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
;

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

【问题讨论】:

不客气。另外,由于您是 *** 的新手,我想通知您,您可以通过勾选答案旁边的勾号来为好的答案投票并接受对您帮助最大的答案。在本网站上,点赞或接受的答案都算作“感谢”。 【参考方案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()

【讨论】:

以上是关于如何从元素中获取子元素数组?的主要内容,如果未能解决你的问题,请参考以下文章

删除元素后,子组件无法从其父组件获取数组。

获取数组中每个索引的子文档元素计数并更新子文档键 - 数组中的子文档(IN MONGODB)

在 Presto 中,如何检查我通过子查询获取的列表中是不是存在数组中的元素

如何将numpy数组中的相同元素移动到子数组中

Scala/Spark - 如何获取所有子数组的第一个元素

JS:二维数组排序和获取子级元素