【发布时间】:2014-01-27 15:07:43
【问题描述】:
我有一个 XML 文件。我想用 C# 将它转换为 JSON。但是,XML 文件超过 20 GB。
我尝试使用 XmlReader 读取 XML,然后将每个节点附加到 JSON 文件。我写了以下代码:
var path = @"c:\result.json";
TextWriter tw = new StreamWriter(path, true, Encoding.UTF8);
tw.Write("{\"A\":");
using (XmlTextReader xmlTextReader = new XmlTextReader("c:\\muslum.xml"))
{
while (xmlTextReader.Read())
{
if (xmlTextReader.Name == "A")
{
var xmlDoc = new XmlDocument();
var v = xmlTextReader.ReadInnerXml();
string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xmlDoc, Newtonsoft.Json.Formatting.None, true);
tw.Write(json);
}
}
}
tw.Write("}");
tw.Close();
此代码不起作用。转换 json 时出现错误。有没有最好的方法来执行转换?
【问题讨论】:
-
你看过 XDocument,你可以用 linq 查询 xml。这将使您的任务更轻松
-
错误是什么?尝试处理一个较小的文件(假设是两个节点)以查看该 JSON 有什么问题(例如:如果您的循环产生一个数组......它在哪里打开/关闭?)
-
你有没有试过这个问题的解决方案:stackoverflow.com/questions/7711818/…(双重内容)
-
这里有一个错误
@"c:\\result.json"你的意思是@"c:\result.json"或"c:\\result.json" -
mongo 的文档最大大小为 16MB。您确定要将 20GB 转换为 json 吗?