我想在600mb附近转换大量的xml数据,我不会没有它的头或根节点我尝试了下面的代码,但它抱怨它不是没有它的根节点。处理大文件的最有效方法是什么。
using (FileStream fs = new FileStream(@"C:\Projects\csvExport\csvExport\csvExport\bin\VLFLBNM7.xml", FileMode.Open))
{
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "ReportDetails";
// xRoot.Namespace = "http://www.cpandl.com";
xRoot.IsNullable = true;
XmlSerializer serializer = new XmlSerializer(typeof(Sequence[]),xRoot);
var data = (Sequence[])serializer.Deserialize(fs);
List<string> list = new List<string>();
foreach (var item in data)
{
List<string> ss = new List<string>();
foreach (var point in item.SourcePath) ss.Add(point.X + "," + point.Y);
list.Add(string.Join(",", ss));
}
File.WriteAllLines(@"C:\Projects\csvExport\csvExport\csvExport\bin\csvFile.csv", list);
}
答案 0 :(得分:0)
如果您的XML具有名称为&#34; ReportDetails&#34;
的根节点,则此代码可以正常工作此代码的示例XML文件应该像
<?xml version="1.0"?>
<ReportDetails>
<Sequence>
<SourcePath>
<X>samply x</X>
<Y>xample y</Y>
</SourcePath>
</Sequence>
</ReportDetails>
您的XML缺失&#34; ReportDetails&#34;你在代码中指定的
xRoot.ElementName = "ReportDetails";