C# 将具有多个重复节点的xml转换为字典
大家好,请帮帮我 这是我的xmlC# 将具有多个重复节点的xml转换为字典,c#,xml,dictionary,xml-parsing,C#,Xml,Dictionary,Xml Parsing,大家好,请帮帮我 这是我的xml C553BF2BE7DAA91B 地面军事系统 55d242d8-547e-4088-ab68-3a19fca2d7fe 7DDC4C25B33DED 6. 0001602579 DPR9406003 维努斯 地面军事系统 索赔 C446A11E20613C0D 05101617 2011-07-22T18:21:25.687 A014440 GLP 3AAFF97D7D8DB7E9 覆盖率 AB0E091A59AC92DD 05101617-10 1B46
C553BF2BE7DAA91B
地面军事系统
55d242d8-547e-4088-ab68-3a19fca2d7fe
7DDC4C25B33DED
6.
0001602579
DPR9406003
维努斯
地面军事系统
索赔
C446A11E20613C0D
05101617
2011-07-22T18:21:25.687
A014440
GLP
3AAFF97D7D8DB7E9
覆盖率
AB0E091A59AC92DD
05101617-10
1B46392A1D5020F2
我
0
F523CD61D5D61F29
覆盖率
AB0E091A59AC92DD
05101617-10
F7D6CB741A0115BC
E
4741
xml有多个重复的节点。我需要在字典中添加节点名和值作为键、值对,但字典不允许我添加重复的键。那我该怎么做呢
我不知道如何获取当前节点的计数,以便将它们附加到节点名并将其作为唯一键添加
这是我的密码
public void BuildDataTable(XmlNode node)
{
XmlNode nodWorking;
if (node.NodeType == XmlNodeType.Element)
{
if (node.HasChildNodes)
{
nodWorking = node.FirstChild;
while (nodWorking != null)
{
if (nodWorking.NodeType != XmlNodeType.Element)
{
dictname.Add(node.ParentNode.Name.ToString() + node.Name.ToString(), node.InnerText);
}
BuildDataTable(nodWorking);
nodWorking = nodWorking.NextSibling;
}
}
}
}
如果我理解正确。。。您在设计词典时遇到问题 如果要在字典中存储多个值,可以使用以下命令:
1) 将列表作为字典的值
IDictionary<string,IList<string>>
为什么要将其转换为字典。看来L.B是对的。你想要的是一本书,不是一本字典。(或者至少是一本收藏词典)。
IDictionary<string,string>
public static void BuildDataTable(XmlNode node)
{
XmlNode nodWorking;
if (node.NodeType == XmlNodeType.Element)
{
if (node.HasChildNodes)
{
nodWorking = node.FirstChild;
while (nodWorking != null)
{
if (nodWorking.NodeType != XmlNodeType.Element)
{
if(!dictname.ContainsKey(node.ParentNode.Name.ToString() + node.Name.ToString()))
dictname[node.ParentNode.Name.ToString() + node.Name.ToString()] = node.InnerText;
else
dictname[node.ParentNode.Name.ToString() + node.Name.ToString()] = dictname[node.ParentNode.Name.ToString() + node.Name.ToString()] +","+node.InnerText;
}
BuildDataTable(nodWorking);
nodWorking = nodWorking.NextSibling;
}
}
}
}