C# 在XDocument中查找元素
我有以下xml: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>
<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();