【问题标题】:Read xml data using XDocument class使用 XDocument 类读取 xml 数据
【发布时间】:2011-12-15 09:12:08
【问题描述】:

我有一个 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>

现在,如果

我指定 name = "String1",我应该得到的值是 "Description 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;

【问题讨论】:

    标签: linq c#-3.0 linq-to-xml


    【解决方案1】:

    听起来像你想要的:

    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())。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多