c# - 如何使用 LINQ 解析此 XML?

标签 c# xml linq

我有以下 XML:

<propertyMetrics month="12" year="2013" propertyId="3923837">
  <metric name="siteTotal" uom="kBtu" dataType="numeric">
    <value>409249.0</value>
  </metric>
  <metric name="waterUseTotal" uom="kgal" dataType="numeric">
    <value>2434.2</value>
  </metric>
  <metric name="totalGHGEmissions" uom="MtCO2e" dataType="numeric">
    <value>28.5</value>
  </metric>
  <metric name="greenPowerOnSite" dataType="numeric">
    <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
  </metric>
</propertyMetrics>

我想要的是关闭“名称”属性并获取与该名称关联的“值”和“uom”。我正在努力找出一种简单的方法来做到这一点。有什么想法吗?

最佳答案

未经测试,我不确定最后一个“null”值,但它给出了将其作为 Dictionary<string, anonymous> 的基本思路。

var doc = XElement.Load(fileName);

var data = dox.Descendants("metric")
     .ToDictionary(e => e.Attribute("name").Value, 
      e => new { uom = e.Attribute("uom").Value, value =(double?) e.Element("Value") });

关于c# - 如何使用 LINQ 解析此 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919044/

相关文章:

c# - 检查集合中的项目是否与任何其他项目匹配的 Linq 方法

c# -\VB 中的运算符

c# - 将程序集作为进程运行

C# - 如何监控进程的文件读/写操作?

Android 数据绑定(bind) - 我可以访问布局 XML 中的封闭 Activity 吗?

.net - 如何使用 LINQ 执行归并排序?

c# - 如何删除应用程序代码中的 app.config

C# 通过属性名获取 Xelement 属性值

xml - 我们如何将 Microsoft Word DOCX 文件转换为 XSLT 中的 HTML?

c# - 如何在 Linq to Entities 查询中调用本地方法?