将具有属性的 XML 元素写入列表

我有这个 XML 文件,并希望将带有属性 Name="TL 52146" 的 < Norm > 下的 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>

预期的结果是:


光伏1401

光伏 1425

光伏 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;

有人可以帮帮我吗?


函数式编程
浏览 183回答 1
1回答

桃花长相依

我将代码更改为以下内容:var ChildsOfNorm = doc&nbsp; &nbsp; &nbsp;.Descendants("Norm")&nbsp; &nbsp; &nbsp;.Where(e => e.Attribute("Name").Value == "TL 52146")&nbsp; &nbsp; &nbsp;.Elements();如果您只想获取MGU元素,请将Elements()调用更改为Elements("MGU").这应该得到所有想要的元素。使用给定的 xmlforeach (var v in ChildsOfNorm)&nbsp; &nbsp; Console.WriteLine(v.Value);输出:PV 1401PV 1425PV 1448
打开App,查看更多内容
随时随地看视频慕课网APP