【发布时间】:2010-06-05 04:28:31
【问题描述】:
我有一个应用程序,它将在 XML 文件中存储一系列(浮点)值。可能有超过 100,000 个值,所以我有兴趣减小大小,但我也希望第三方可以轻松访问文件。
就在 XML 中编码数据而言,我似乎有多种方法可供选择:
1.
<data>
<value>12.34</value>
<value>56.78</value>
...
<value>90.12</value>
</data>
2.
<data>
<value v="12.34"/>
<value v="56.78"/>
...
<value v="90.12"/>
</data>
3.
<data>12.34
56.78
...
90.12
</data>
4.
<data>12.34, 56.78, ... 90.12</data>
而且可能还有更多变体。
我只是想知道这些方法的缺点(如果有的话)。例如,有些可能不合规。
【问题讨论】:
-
您还在使用 XML 吗?这是一种古老的存储格式。您可以尝试使用较小尺寸的 JSON。还要记住,XML 更适合用于传输信息,而不一定是存储它。
-
您需要 XML 文件中的值的可读性如何?到目前为止的答案假设可读性很重要,但是当我在 XML 文件中存储 100K“平面”值时,我知道我无法手动读取它们,所以可读性并不重要。如果您不需要它们可读,我可以为您提供包装方法,这些方法将占用您上述选择的一小部分空间。
-
摇滚六弦乐队,康拉德-阿尔布雷希特。使用 XML 的原因是为了让第 3 方应用程序开发人员可以访问数据文件。目前,数据文件是专有的二进制格式,我们必须提供导出为 csv /xls 的功能。如果数据文件是 xml,我们不需要提供任何其他工具。如果使用变体 2(?),JSON 并不是真的更小。 XML 也是可扩展的,因为我们可以在不破坏现有软件的情况下添加数据。我们还可以轻松使用加密/压缩/数字签名/篡改检测技术。
-
对 JSON 的一个很好的论据是它可以在 javascript(JavaScript 对象表示法)中本地读取。现在还有其他语言使用内置的 JSON 阅读器(例如 .NET)。因此,如果您正在提供数据,那么其他应用程序可以非常简单地使用 JSON。
-
然而,像 RSS 阅读器这样的东西仍在使用 XML,谷歌的站点地图和类似的东西也是如此。