use*_*901 2 linq linq-to-xml c#-3.0
我有一个xml文件说(test.xml)
<root loc-ver="1.0">
<data name="String1" xml:space="preserve">
<value loc="root_data_value_2">Description number1</value>
</data>
<data name="String2" xml:space="preserve">
<value loc="root_data_value_3">Description number 2</value>
</data>
</root>
Run Code Online (Sandbox Code Playgroud)
现在,如果
我指定name ="String1",我应该得到"描述number1"的值
我指定name ="String2",我应该将值作为描述number2
我正在尝试这种方法,没有结果
XDocument doc = XDocument.Load(@"D:\test.xml");
string search = "String10";
var lv1s = from lv1 in doc.Descendants("data")
select lv1.Name;
Run Code Online (Sandbox Code Playgroud)
听起来像你想要的:
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
Run Code Online (Sandbox Code Playgroud)
如果没有一个结果,你应该考虑你想要发生什么.这是一个错误状态(如果是这样,使用Single()),如果你使用所有结果(如果是这样,只是迭代query),你应该使用第一个结果(如果可用),否则忽略它(如果是,请使用FirstOrDefault()并检查是否如果您使用第一个结果,则结果为null),如果没有,则为错误(如果是,请使用First()).
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |