我需要将一个非常大的XML文件压缩到最小的可能大小。
我使用C#,并且希望它是一些开源或应用程序,我可以通过我的代码访问,但是我也可以处理算法。
谢谢!
我需要将一个非常大的XML文件压缩到最小的可能大小。
我使用C#,并且希望它是一些开源或应用程序,我可以通过我的代码访问,但是我也可以处理算法。
谢谢!
虽然可能不是最小的尺寸,但您可以使用 System.IO.Compression
进行压缩。对于文本,压缩通常提供非常好的压缩效果。
using (var fileStream = File.OpenWrite(...))
using (var zipStream = new GZipStream(fileStream, CompressionMode.Compress))
{
zipStream.Write(...);
}
二进制XML承诺解决XML的这个长期弱点。很容易制作一个工具,在不知道XML模式的情况下,在二进制/文本表示之间进行转换,这意味着您仍然可以轻松编辑文件。
如果您想要尽可能小的文件大小,那么可以尝试使用Fast Infoset作为二进制XML编码,然后使用BZIP2或LZMA进行压缩。与压缩文本XML或使用EXI相比,您可能会获得更好的结果。FastInfoset.NET包括Fast Infoset标准的实现和多种可选的压缩格式,但是它是商业软件。