【发布时间】:2014-10-01 15:12:43
【问题描述】:
我的意图是遍历我可爱的字典(键和值都是字符串)并从中创建一个 xml 文件。
我在最后一行得到错误(保存 xml)。
"InvalidOperationException 未处理 状态 Document 中的令牌 EndDocument 将导致无效的 XML 文档。”
使用断点查看此内容,似乎在到达此内容的末尾时,仅完成了初始位(在 for each 循环之外)..
我一半是在问我犯了什么愚蠢的错误,我一半是在问是否有更雄辩的方式来做到这一点。
如果我遗漏了什么,请告诉我,如果我有,我会补充。
XDocument xData = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"));
foreach (KeyValuePair<string, string> kvp in inputDictionary)
{
xData.Element(valuesName).Add(
new XElement(valuesName,
new XAttribute("key", kvp.Key),
new XAttribute("value", kvp.Value)));
}
xData.Save("C:\\xData.xml");
【问题讨论】:
-
您能否提供有关您的代码的更多详细信息,例如什么是 xDoc 和 valuesName?
-
确实 - 你有
xData被你忽略,但不是xDoc。目前您的xData文档just 有一个XML 声明......它甚至没有根元素。请提供一个简短但完整的程序来说明问题。 -
对,对不起,谢谢大家指出这一点。我现在已经编辑了。当我试图弄清楚我做错了什么时,我尝试了另一个 xDocument,但现在这一切都涉及 xData(只是一个错字)。编辑了以上内容。
-
@Jonny:这就是为什么提供一个简短但完整示例很有用的原因,其他人可以复制、粘贴、编译和运行该示例(除非您报告编译错误)。
标签: c# dictionary linq-to-xml