在XML文件中编码二进制数据的实用方法是手动编辑吗?

时间:2010-09-27 07:16:54

标签: xml

我需要以专有格式编辑一些讨厌的二进制文件,所以我在这种二进制格式和XML之间编写了一个转换器。现在我可以编辑有趣的位,但遗憾的是这种格式嵌入了大量的原始二进制数据 - 我需要将它保持原样(或者重新转换回转换),但它无论如何都没有意义的可编辑因此我希望看到它尽可能少。

最简单的方法是使这种blob占用最少的空间,同时尽量减少这种blob意外损坏的可能性?我在考虑gzip + base64并将校验和和大小放在blob标签的属性中 - 或者是否有更合理的方法?

1 个答案:

答案 0 :(得分:0)

如果可以从原始文件轻松复制斑点,您可以简单地参考它们。像

这样的东西
<blob start="1000" end="2000"/>

<blob seq='1'/>

# in another file:
1 1000 2000

<强>更新

由于原始文件将被删除(请参阅注释),因此不能按原样使用。

这样可行:

<blob start='0' end='1000'/>

# Another file. Depending on space/time requirements, you may either
# not compress anything, compress the whole file, or compress each blob.
[blob 1][blob 2][blob 3]

如果你绝对需要单文件输出,你也可以在XML中嵌入第二个文件(带编码+校验和),但它与你原来的想法没有太大的改进。