如何处理大尺寸的XML文件。我知道以下几点会影响XML文件的大小。1)重复模式出现,如:dfd dfser,... 2)图案高度和大小(字节) 3)缩进4)多个空格5)展平图案
我的问题是如何在c#中实现上述参数。我用谷歌搜索了一下,但是找不到任何例子。
有没有人能帮我做到这一点。
更新1:在压缩算法中,xml文件的大小减小了,但我想通过编程来减小文件的大小。我从一个类生成一个xml文件,例如:
<assets>
<asset>
<id> 1</id>
<Hardware></Hardware> ....
</asset>
<asset>
<id> 1</id>
<Hardware> mouse</Hardware>
<Hardware>keyboard</Hardware> ....
</asset>
</assets>就像这样,我不得不用上面的xml为1000多个资产提供更多的配置信息,这里相同的xml标签一次又一次地重复。如何从c#类生成优化的xml文件。
发布于 2015-10-10 16:47:10
也许可以像这样使用GZip压缩?即使在最快模式下,它也几乎完全消除了重复XML标记所产生的文件大小开销。
[Serializable]
public class Asset
{
public int Id { get; set; }
public List<string> Hardware { get; set; }
}
...
List<Asset> assets = new List<Asset> {new Asset {Id = 1,
Hardware = new List<string> {"mouse", "keyboard"}}};
//serialize
using (GZipStream zs = new GZipStream(File.Create("compressed_xml.zip"),
CompressionLevel.Fastest))
{
XmlSerializer serializer = new XmlSerializer(typeof (List<Asset>));
serializer.Serialize(zs, assets);
}
//deserialize
using (GZipStream zs = new GZipStream(File.Open("compressed_xml.zip",FileMode.Open),
CompressionMode.Decompress))
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Asset>));
assets=(List<Asset>) serializer.Deserialize(zs);
}https://stackoverflow.com/questions/33051431
复制相似问题