我有一个与此类似的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中的项目,因为这些可能会发生变化,如下所示:
Foundation 0
StepsFront 3
StepsRear 1
StepsSide 3
PorchFront 2
我尝试过几种方法,使用LINQ to XML和XDocument以及XElement,但我用过的任何东西都没有给我任何接近。
答案 0 :(得分:2)
您可以使用ToDictionary
方法:
XDocument document;
...
var house = document.Elements("House").First();
house.Elements().ToDictionary(e => e.Name, e => e.Element("Severity").Value);
答案 1 :(得分:0)
Dictionary<string, int> severities =
doc.Descendants("House").First()
.Elements().ToDictionary(
e => e.Name.ToString(),
e => int.Parse(e.Element("Severity").Value));