好吧,我读了几本关于 XML 的书,并编写了程序来吐出它,等等。但问题是这样的。逗号分隔文件和 XML 文件都是“人类可读的”。但总的来说,逗号分隔文件比 XML 文件更容易被我看到;标签通常占用与数据一样多的空间(甚至更多)。这似乎掩盖了我正在阅读的内容,并且该格式可以使用一页来包含与逗号分隔文件中的单行文本中包含的相同信息。逗号分隔的文件解析起来要简单得多。所以真正的问题是为什么选择 XML?仅仅因为所有很酷的孩子都这样做?
优点
与 CSV 相比,XML 具有许多优点:
- 分层数据组织
- 自动数据验证(XML 模式或 DTD)
- 轻松转换格式(使用 XSL)
- 易于识别关系结构
- 可与 XML-RPC 结合使用
- 适用于对象持久化(编组)
- 简化企业对企业的沟通
- 有用的相关技术(XPath、DOM)
- 与现代 Web 浏览器紧密集成
- 提取、转换和加载 (ETL) 工具
- 向后文件格式兼容性(版本属性)
- 数字签名
这完全取决于问题领域和您要解决的问题。
Example
最后一项是很多人在编写网页时都会忽略的内容。考虑一下您拥有大量歌曲数据存储的情况。歌曲有艺术家、专辑、每分钟节拍等等。您可以将数据导出为 XML,编写一个简单的样式表将 XML 呈现为 XHTML,然后将浏览器指向 XML 页面。浏览器会将 XML 呈现为网页。
使用 CSV 无法做到这一点。
缺点
乔尔·斯波尔斯基有一篇很棒的文章 http://www.joelonsoftware.com/articles/fog0000000319.html为什么 XML 作为复杂的数据存储不是一个糟糕的选择:它很慢。 (与可以使用单个 CPU 指令检索上一条或下一条记录的数据库不同,遍历 XML 文档中的记录要慢得多。)可以说,这可以被视为优化问题,可以通过以下方式解决:等待18个月 http://en.wikipedia.org/wiki/Moore%27s_law. Thus:
- 解析速度比其他格式慢
- 语法冗余会降低可读性
- 文档膨胀可能会影响存储成本
- 无法轻松地对重叠(非分层)数据结构进行建模
- 设计不良的 XML 文件格式并不罕见(根据我的经验;需要引用)
相关问题
也可以看看:为什么我应该使用人类可读的文件格式 https://stackoverflow.com/questions/568671/why-should-i-use-a-human-readable-file-format.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)