C# 在XDocument中查找元素

C# 在XDocument中查找元素,c#,.net,xml,linq-to-xml,C#,.net,Xml,Linq To Xml,我有以下xml: <List> <Element> <ID>1</ID> <property>19</property> </Element> <Element> <ID>2</ID> <property>11</property> </Element> <Element>

我有以下xml:

<List>
  <Element>
    <ID>1</ID>
    <property>19</property>
  </Element>
  <Element>
    <ID>2</ID>
    <property>11</property>
  </Element>
  <Element>
    <ID>3</ID>
    <property>5</property>
  </Element>
</List>
但出现了以下例外情况:

System.Private.Xml.dll中发生类型为“System.Xml.XmlException”的异常,但未在用户代码中处理 名称不能以“3”字符、十六进制值0x33开头


如何获取第三个元素?

这是因为您正在将XMLElement的名称与您的
id
进行比较,并且XML规范规定元素的名称不能以数字开头。因此,与其与名称进行比较,不如与如下值进行比较:

var节点=doc.subjects()
.Where(n=>n.Elements()
//我在这里把“x.Name”改为“x.Value”
.Where(x=>x.Value==id.ToString())
.FirstOrDefault()!=null)
.FirstOrDefault();
var node = doc.Descendants().Where(n => n.Elements().Where(x=>x.Name == id.ToString()).FirstOrDefault()!=null).FirstOrDefault();