【问题标题】:Saving "skipped" nodes in xml into array将xml中的“跳过”节点保存到数组中
【发布时间】:2012-12-24 07:23:23
【问题描述】:

在我的代码中,我正在下载一个 xml 文件,并且因为其中一个节点是可变的(它们的名称和数量),所以我使用这样的代码:

XmlNodeList arrivals = airplanes.SelectNodes("/myXml/flights/*/arrivals");

现在我需要做的是将“*”跳过的节点的名称保存到一个数组或数组列表中,类似的东西。稍后我将需要使用一些 foreach 对每个节点做一些事情,现在保存为字符串。我试过了

foreach(* in MyArrayList)

这不起作用,假设我不能在此处使用“ * ”,我会收到一些错误。

【问题讨论】:

  • 注意:我已经尝试过使用不同 ArrayList 的 foreach 只是为了检查它是否可能,我仍然不知道如何保存节点的名称。
  • 你能不能选择 XmlNodeList 列出你跳过的所有节点

标签: c# xml arrays


【解决方案1】:

XmlNodeList 中的每个 XmlNode 都有一个 ParentNode 属性,您应该能够使用它从 xml 中的 arrivals 节点导航到 * 节点。

以下 Linq 查询应获取名称:

var names = arrivals.Cast<XmlNode>().Select(x => x.ParentNode.Name).ToList();

需要Cast&lt;XmlNode&gt;,因为 XmlNodeList 没有实现通用的IEnumerable 接口。

【讨论】:

  • 感谢您的快速回复。我现在无法访问我的代码,我明天试试看;)谢谢。
  • @MarekBuchtela 没问题,您使用的是 .NET 3.5 还是更高版本?
猜你喜欢
  • 2012-11-15
  • 2013-09-06
  • 2022-07-08
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多