XElement是否有类似于XmlNodeList的东西?

3
我希望使用XElement来完成这个操作:
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

mlNodeList nodeList = doc.GetElementsByTagName("Title");

可以获取所有节点吗?
1个回答

6

你的代码等价于:

XElement doc = XElement.Parse(xml);
IEnumerable<XElement> nodeList = doc.Descendants("Title");

如果你需要一个离散的列表,可以调用 nodeList.ToList(),但如果你只需要迭代,IEnumerable 应该就可以了。

编辑:有两种选择节点的方法。如果你需要一个节点的直接子节点,请使用 Elements();如果你需要所有子节点(无论深度如何),请使用 Descendants()


嗨,谢谢您的回答,但您的代码给了我一个空值。我的 nodeList 有85个元素。 - senzacionale
它在哪里给你null?当你枚举列表时吗?当你调用 doc.Elements 吗?这些节点名称是“Title”(区分大小写)吗? - Mike Caron
空 = “枚举未产生任何结果” - senzacionale
你能发布一下XML文档吗?另外,如果你使用了命名空间,那就需要写一些额外的代码。 - Mike Caron
这是我的代码:XElement doc = XElement.Parse(xml); IEnumerable<XElement> nodeList = doc.Elements("FirstName"); - senzacionale
1
好的,我更新了我的回答。我误解了你所需要的内容。Descendants()将选择所有子元素,而不仅仅是直接的子元素。我已经根据你发布的部分文档进行了测试。 - Mike Caron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接