如何在c#中遍历XML并填充Dictionary

本文关键字:XML 填充 Dictionary 遍历 | 更新日期: 2023-09-27 18:03:29

我有一个类似的XML:

<Account>
  <Personal>
    <Name>TestName</name>
    <address>TestAddress</Address>
  </personal>
  <details>
    <House>
        <Foundation>
            <Severity>0</Severity>
        </Foundation>
        <StepsFront>
            <Severity>-1</Severity>
        </StepsFront>
        <StepsRear>
            <Severity>-1</Severity>
        </StepsRear>
        <StepsSide>
            <Severity>-1</Severity>
        </StepsSide>
        <PorchFront>
            <Severity>0</Severity>
        </PorchFront>
    </House>
  </details>
</Account>

我可以很容易地获得个人详细信息,但是我想要一些方法来动态地用House中的项目填充Dictionary,因为这些可能会改变,像这样:

Foundation 0    
StepsFront 3    
StepsRear  1    
StepsSide  3    
PorchFront 2

我试过这样做的几种方式,使用LINQ XML与XDocument和XElement,但我所使用的没有给我任何接近。

如何在c#中遍历XML并填充Dictionary

您可以使用ToDictionary方法:

XDocument document;
...
var house = document.Elements("House").First();
house.Elements().ToDictionary(e => e.Name, e => e.Element("Severity").Value);
Dictionary<string, int> severities =
    doc.Descendants("House").First()
    .Elements().ToDictionary(
        e => e.Name.ToString(),
        e => int.Parse(e.Element("Severity").Value));