Linq 使用XDocument类读取xml数据

Linq 使用XDocument类读取xml数据,linq,c#-3.0,linq-to-xml,Linq,C# 3.0,Linq To Xml,我有一个xml文件,比如(test.xml) 听起来你想要: string name = "String1"; // Or whatever var query = from data in doc.Descendants("data") where (string) data.Attribute("name") == name select (string) data.Element("value"); string description =

我有一个xml文件,比如(test.xml)

听起来你想要:

string name = "String1"; // Or whatever
var query = from data in doc.Descendants("data")
            where (string) data.Attribute("name") == name
            select (string) data.Element("value");

string description = query.First(); // Or FirstOrDefault etc
如果没有一个结果,你应该考虑你想发生的事情。这是一种错误状态(如果是,请使用
Single()
),是否应该使用所有结果(如果是,只需迭代
query
),是否应该使用第一个结果(如果是可用的),是否忽略它(如果是,请使用
FirstOrDefault()
,并检查结果是否为空),是否应该使用第一个结果,如果没有任何错误(如果有,请使用
First()

 XDocument doc = XDocument.Load(@"D:\test.xml");
 string search = "String10";

 var lv1s = from lv1 in doc.Descendants("data")
            select lv1.Name;
string name = "String1"; // Or whatever
var query = from data in doc.Descendants("data")
            where (string) data.Attribute("name") == name
            select (string) data.Element("value");

string description = query.First(); // Or FirstOrDefault etc