【发布时间】:2013-06-14 22:02:43
【问题描述】:
所以我有下面的函数,它接受一个字典并将它存储到一个 XML 文件中。
static void DictionaryToXML(Dictionary<string,User> UserClassDict, string xmldoc)
{
Console.WriteLine("Moving User Dictionary data to XML (" + xmldoc + ")...");
XElement el = new XElement("UserClassDictionary",
UserClassDict.Select(kv => new XElement(kv.Key,
kv.Value.ControlNumber.Select(num => new XElement("ControlNumber", num)))));
var xml = el.ToString();
File.WriteAllText(xmldoc, xml);
}
输出如下所示
<?xml version="1.0"?>
-<UserClassDictionary>-
<amsmith>
<ControlNumber>1298136</ControlNumber>
</amsmith>
-<asnyder>
<ControlNumber>1296234</ControlNumber>
</asnyder>
-<atreckey>
<ControlNumber>1295885</ControlNumber>
</atreckey>
</UserClassDictionary>
我需要帮助来重新格式化这个 XML。我希望格式看起来与此非常相似:
<UserClassDictionary>
<User id="amsmith">
<ControlNumbers>
<ControlNumber> 111222 </ControlNumber>
</ControlNumbers>
</User>
<User id="asnyder">
<ControlNumbers>
<ControlNumber> 222333 </ControlNumber>
<ControlNumber> 222444 </ControlNumber>
</ControlNumbers>
</User>
【问题讨论】:
-
只是出于好奇,您是在 IE 之类的浏览器中查看文件,还是在 Visual Studio 中的 XMLViewer 中查看文件?尝试在记事本(或 Visual Studio 中的文本查看器)中打开它。
-
@Tim 我发布的第一个 XML 块正在 IE 中查看。
-
我是这么认为的。如果你打开你在记事本中创建的文件,我敢打赌它看起来会很好。 IE 允许您展开和折叠具有子元素的元素(您发布的代码中的
-<atreckey>之类的内容是我提出这个问题的原因)。 -
@MaylorTaylor 一点建议 - 在 C# 中,我们使用 camelCase 格式作为方法参数名称。最好将控制数字属性命名为
ControlNumbers,因此它是一个集合,而不是单个数字。
标签: c# xml linq dictionary