我有一个XML文件。我想用C#将它转换为JSON。但是,该XML文件超过20 GB。大数据Xml文件(文件大小超过20GB)转换为Json文件
我试图用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。它会让你的任务更容易 – Murdock
什么是错误?试着处理一个较小的文件(比方说两个节点),看看那个JSON有什么问题(例如:如果你的循环产生一个数组......它在哪里打开/关闭?) –
你试过这个问题的解决方案: http://stackoverflow.com/questions/7711818/storing-large-xml-in-mongodb(类型的双重内容) – aloisdg