【问题标题】:Write XML Elements with attribute to list将具有属性的 XML 元素写入列表
【发布时间】:2018-07-24 08:52:42
【问题描述】:

我有这个 XML 文件,并希望将所有带有 MGU 标记的值写入列表:

<?xml version="1.0" encoding="utf-8"?>
<Normen>
  <Norm Name="TL 52146">
    <MGU>PV 1401</MGU>
    <MGU>PV 1425</MGU>
    <MGU>PV 1448</MGU>
  </Norm>
</Normen>

预期的结果是:

  • PV 1401
  • PV 1425
  • PV 1448

当我使用此代码时,我只得到一个包含所有 MGU 的列表元素,但我希望每个 MGU 在我的列表中都是一个单独的条目:

XDocument doc = XDocument.Load("data/data.xml");
var ChildsOfNorm = from element in doc.Descendants("Norm")
                   where element.Attribute("Name").Value == "TL 52146"
                   select element;

有人可以帮帮我吗?

【问题讨论】:

    标签: c# xml linq-to-xml


    【解决方案1】:

    我会将代码更改为以下内容:

    var ChildsOfNorm = doc
         .Descendants("Norm")
         .Where(e => e.Attribute("Name").Value == "TL 52146")
         .Elements();
    

    如果您只想获取MGU 元素,请将Elements() 调用更改为Elements("MGU")

    这应该得到所有想要的元素。

    使用给定的xml

    foreach (var v in ChildsOfNorm)
        Console.WriteLine(v.Value);
    

    输出:

    PV 1401
    PV 1425
    PV 1448

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多