我想你是想得到55的价值?你可以使用
First
方法查找第一个“data”元素,其“type”属性值为“classa”。
record.Element("data1")
.Elements("Data")
.First(data => data.Attribute("type").Value == "classA")
.Value
请注意,上述解决方案非常脆弱。对输入XML文档结构的任何更改都可能导致空引用异常。
您还可以使用更紧凑的XPath查询语言查询XML文档。xpath能够使用括在方括号中的简单表达式筛选元素。然后,您的代码将如下所示:
foreach (var record in ILSXml.XPathSelectElements("XDOC/ItemsDetail/Item"))
{
Console.WriteLine("Name: {0}",
record.Attribute("name").Value);
Console.WriteLine("Data1 ClassA: {0}",
record.XPathSelectElement("data1/Data[@type='classA']").Value);
}