压缩XML的最佳方法

压缩XML的最佳方法

1111虽然可能不是最小的尺寸,但您可以使用 System.IO.Compression 进行压缩。对于文本,压缩通常提供非常好的压缩效果。

using (var fileStream = File.OpenWrite(...))

using (var zipStream = new GZipStream(fileStream, CompressionMode.Compress))

{

zipStream.Write(...);

}

- Kent Boogaart回答链接77如上所述,高效XML交换(EXI)一直以来都实现了最佳的可用XML压缩。即使没有模式,EXI通常比zip小2-5倍也并非罕见。如果有模式,你会做得更好。

如果您不反对商业实现,可以使用高效XML的.NET版本,并使用标准.NET API直接从C#代码调用它。您可以从http://www.agiledelta.com/efx_download.html下载免费试用版。

- John Schneider回答链接44请查看XML压缩工具,您也可以使用SharpZipLib进行压缩。

- Hannoun Yassir1在我的情况下,xmlppm 的压缩比 EXI 更好。 - ManuelAtWork回答链接44如果您有可用于XML文件的模式,您可以尝试EXIficient。它是高效XML交换(EXI)格式的实现,是目前最好的通用XML压缩方法。如果您没有模式,EXI仍然比常规zip(即deflate算法)更好,但对于大型文件来说并不是非常好。

EXIficient仅适用于Java,但您可能可以将其制作成可调用的应用程序。我不知道是否有任何C#中的开源实现EXI。

- JaakkoK回答链接33文件大小并不是EXI(或任何二进制方案)的唯一优点。读/写时,处理时间和内存开销也大大降低。想象一个程序通过简单地复制字节将浮点数字复制到磁盘上。现在想象另一个程序将浮点数字转换为格式化文本,并将它们粘贴到文本流中,然后将该流通过昂贵的压缩算法传输。由于这种荒谬的开销,XML基本上无法用于非常庞大的文件,这些文件可以通过二进制表示轻松处理。

二进制XML承诺解决XML的这个长期弱点。很容易制作一个工具,在不知道XML模式的情况下,在二进制/文本表示之间进行转换,这意味着您仍然可以轻松编辑文件。

- xml_guy回答链接22XML非常易于压缩。您可以使用DotNetZip从XML生成压缩的zip文件。

- Oded1可能是因为这几乎是一个仅包含链接的答案,而且链接已经失效了。 - Sebastian Hofmann回答链接22如果您需要最大压缩级别,我建议使用LZMA。这是开源7-Zip项目的一部分,包括C#的SDK,可以在这里找到。

- margnus11你可以使用XML特定的压缩算法来获得更好的效果。 - vy32回答链接22如果您想要尽可能小的文件大小,那么可以尝试使用Fast Infoset作为二进制XML编码,然后使用BZIP2或LZMA进行压缩。与压缩文本XML或使用EXI相比,您可能会获得更好的结果。FastInfoset.NET包括Fast Infoset标准的实现和多种可选的压缩格式,但是它是商业软件。

- Alexander Philippou回答链接

相关推荐

程咬金和吕布对线哪个厉害
365scores下载

程咬金和吕布对线哪个厉害

07-01 👁️‍🗨️ 7577
微博怎么关闭直播打赏功能设置
beat365唯一的网址

微博怎么关闭直播打赏功能设置

08-31 👁️‍🗨️ 6912
帏次怎么读,意思,造句
bat365入口

帏次怎么读,意思,造句

08-15 👁️‍🗨️ 2665
北京工体VICS酒吧攻略解答
beat365唯一的网址

北京工体VICS酒吧攻略解答

10-29 👁️‍🗨️ 4061
怎么知道手机哪里有小黄车(扫小黄车怎么使用?)
beat365唯一的网址

怎么知道手机哪里有小黄车(扫小黄车怎么使用?)

02-04 👁️‍🗨️ 3382
天猫魔盒是什么?天猫魔盒怎么用?
bat365入口

天猫魔盒是什么?天猫魔盒怎么用?

01-06 👁️‍🗨️ 4796
还在纠结锋尚3怎么样?看完再决定!
beat365唯一的网址

还在纠结锋尚3怎么样?看完再决定!

07-02 👁️‍🗨️ 6579
NBA传奇斯蒂芬库里的3000万美元奢华庄园之旅
beat365唯一的网址

NBA传奇斯蒂芬库里的3000万美元奢华庄园之旅

10-28 👁️‍🗨️ 7808
汽车座椅该如何调?调不好上车就腰疼,调的好开几百公里不嫌累