3

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

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

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

foreach(* in MyArrayList)

这不起作用,假设我不能在这里使用“ * ”,我在那里得到了一些错误。

4

1 回答 1

3

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

以下 Linq 查询应获取名称:

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

之所以需要,Cast<XmlNode>是因为 XmlNodeList 没有实现通用IEnumerable接口。

于 2012-12-23T23:23:23.120 回答