Вложенный XML в словарь
Я пытаюсь преобразовать данные XML в словарь. У меня проблемы с одинаковыми именами узлов. C # .Net 3.5
Пример XML = проблема в том, что я не могу это контролировать. Мне просто нужно это обработать.
val1
val2
param1
paramval1
param2
paramval2
Моя попытка:
XMLStream.Position = 0;
XElement xmlDetails2 = XElement.Load(new System.IO.StreamReader(XMLStream));
var x = xmlDetails2.Elements().ToDictionary(
e => e.Name.LocalName,
e => e.Elements()
.ToDictionary(
f => f.Name.LocalName,
f => f.Value));
Ошибка, которую я получаю (что, конечно, имеет смысл):
An item with the same key has already been added.
Ожидаемый результат (из примера xml):
a1 => val1
a2 => val2
param1 => paramval1
param2 => paramval2
...
Я создал свой собственный на основе предложения @ L.B. Это'Это не лучшее решение, но пока оно работает.
public void XMLTODictionary(XElement xmlDetails, ref Dictionary dic)
{
foreach (var node in xmlDetails.Elements())
{
if (node.Name.LocalName.Equals("parameter", StringComparison.CurrentCultureIgnoreCase))
{
dic.Add(node.Element("ParameterName").Value, node.Element("ParameterValue").Value);
}
else
{
dic.Add(node.Name.LocalName, node.Value);
}
}
}