当前位置:  开发笔记 > 前端 > 正文

Xml可以用</>压缩到结束元素吗?

如何解决《Xml可以用</>压缩到结束元素吗?》经验,为你挑选了4个好方法。

是否有任何理由为什么这样的XML:

    
    Joe    
    Plumber

无法像这样压缩客户端/服务器传输.

    
    Joe    
    Plumber

它会更小 - 解析起来稍快一点.

假设没有边缘条件意味着这不起作用 - 是否有任何库可以做这样的事情?

事实证明这是一件很难的事情:

您的搜索 - - 与任何文件都不匹配.

建议:

尝试不同的关键字

编辑:似乎是我所要求的混乱.我正在谈论我自己的压缩形式.我完全清楚,因为它不是XML.服务器和客户端必须"参与计划".对于具有很长元素名称的模式,这将特别有用,因为这些元素名称占用的带宽将减半.



1> Pete Kirkham..:

如果您编写了一个执行该操作的压缩例程,那么是的,您可以压缩流并在另一端恢复它.

没有这样做的原因是:

已经存在更好的XML不可知压缩方案(就压缩比而言,可能在CPU和空间方面 - 某个7 N UTF-8文档将获得14%的压缩但需要至少2 N字节空间来解压缩,而不是大多数解压缩算法所需的恒定空间.

已经存在更好的XML感知压缩方案(谷歌'二进制xml').对于模式感知压缩,基于ASN.1的方案比将指示元素类型的大小减少一半要好得多.

解压缩程序必须解析非标准XML并保留它遇到的打开标记的堆栈.因此,除非您将其插入而不是解析器,否则您的解析成本会翻倍.如果你插入它而不是解析器,你会混合不同的层,这在某些时候容易引起混淆



2> cletus..:

这不是有效的XML.必须命名结束标记.否则它可能容易出错,坦率地说,我认为你的方式可读性较差.

关于你对这是一个非标准违反XML标准以保存几个字节的说明,这是一个非常糟糕的主意,原因有以下几点:

    它是非标准的,未来可能必须得到支持;

    标准存在是有原因的.标准和惯例具有很强的功能,并且有"自定义XML"排名,象牙塔图形设计师迫使程序员编写自定义按钮替换,因为标准版无法做任何奇怪,奇妙和混乱的行为被设想;

    Gzip压缩很容易,效率更高,不会破坏标准.如果你看到一个gzip八位字节流,那就没有错误的XML了.你得到的速记方案的真正问题在于它仍然处于最顶层,所以一些可怜的毫无防备的解析器可能会犯错误,认为它有效并且用一种不同的误导性错误炸弹;

    信息理论:通过消除信息冗余来实现压缩.如果你这样做,它会使gzip压缩不再有效,因为相同数量的信息被重新设置;

    将文档转换为此方案或从此方案转换文档会产生巨大的开销.使用标准XML解析器无法做到这一点,因此您必须有效地编写自己的XML解析器和输出器来理解这个方案(实际上可以使用解析器转换为此格式;将其恢复更困难),这是很多工作(和很多错误).



3> Boris Pavlov..:

如果您需要更好的压缩和更容易的解析,您可以尝试使用XML属性:




4> Paul Dixon..:

正如你所说,这不是XML,为什么它甚至看起来像XML?您已经失去了使用任何XML解析器或工具的能力.我要么

使用XML,并在线上压缩它,因为您将看到比您自己的方案更大的节省

使用另一种更紧凑的格式,如YAML或JSON

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有