我试图从 XML 文档中获取元素列表,其中节点具有特定的属性值。该文档的结构如下:
<root>
<node type="type1">some text</node>
<node type="type2">some other text</node>
<node type="type1">some more text</node>
<node type="type2">even more text</node>
</root>
我想要的结果是IEnumerable<XElement>
包含 type="type1" 的两个节点,例如
<node type="type1">some text</node>
<node type="type1">some more text</node>
我正在使用加载文档var doc = XDocument.Load(@"C:\document.xml");
我可以得到一个IEnumerable<XAttribute>
包含我想要使用的节点的属性
var foo = doc.Descendants("node")
.Attributes("type")
.Where(x => x.Value == "type1")
.ToList();
但是,如果我尝试使用下面的代码获取包含这些属性的元素,我会得到一个Object reference not set to an instance of an object.
错误。我使用的代码是
var bar = doc.Descendants("node")
.Where(x => x.Attribute("type").Value == "type1")
.ToList();
任何有关弄清楚为什么我没有得到我期望的结果的帮助将不胜感激。