As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened,
visit the help center提供指导。
9年前关闭。
通过阅读StackOverflow并收听Joel Spolsky和Jeff Atwood的播客,我开始相信许多开发人员都讨厌使用XML或至少使用
来尝试避免尽可能多地使用XML来存储或交换数据。
另一方面,由于以下几个原因,我非常喜欢使用XML:
XML序列化已在大多数现代语言中实现,并且非常易于使用,
比二进制序列化要慢,当涉及到时,XML序列化非常有用,它使用来自几种编程语言的相同数据,或者用于人工读取和理解(甚至用于调试)的数据(例如JSON,更难理解),
XML支持 unicode ,并且使用正确时,使用不同的编码,字符等也不会出现问题。
有很多工具可以简化XML数据的使用。 XSLT 是一个示例,可以轻松呈现和转换数据。 XPath 是另一种,可以轻松搜索数据
XML可以存储在某些SQL服务器中,这使得方案中必须保存和处理数据太复杂而无法轻松存储在SQL表中的数据;例如,JSON或二进制数据不能直接通过SQL进行操作(除非通过处理字符串(在大多数情况下很疯狂)),
XML不需要安装任何应用程序。如果我希望我的应用使用数据库,则必须先安装数据库服务器。如果我希望我的应用程序使用XML,则我不需要安装任何东西, 与Windows注册表或INI文件相比,
XML的显式和可扩展的得多。
在大多数情况下,由于XML提供的抽象级别,没有没有CR-LF问题。
因此,考虑到使用XML的所有好处,为什么这么多开发人员讨厌使用XML?恕我直言,唯一的问题是:
XML过于冗长,并且比大多数其他形式的数据需要更多的空间,尤其是在涉及Base64编码时。
当然,在许多情况下XML根本不适合使用。将SO的问题和答案存储在服务器端的XML文件中绝对是错误的。或者,当存储AVI视频或一堆JPG图像时,使用XML是最糟糕的事情。
但是其他情况呢? XML的弱点是什么?
对于认为此问题不是真正问题的人们:
与诸如非封闭
Significant new inventions in computing since 1980之类的问题相反,我的问题是一个非常明确的问题,并明确邀请您解释其他人在使用XML时遇到的弱点以及为什么他们不喜欢它。例如,它不会邀请您讨论XML是好是坏。它也不需要扩展讨论;因此,到目前为止收到的当前答案简短准确,可以提供我想要的足够信息。
但这是一个Wiki,因为无法对这个问题有一个独特的良好答案。
根据SO的说法,“不是一个真正的问题”是一个问题,其中“很难说出这里要问什么。这个问题是模棱两可,含糊,不完整或修辞,不能以目前的形式合理地回答。”
这里的问题是:我认为问题本身非常清楚,上面的几段文字更加清楚了,
这个问题是模棱两可的,模糊的,不完整的:再次是没有模棱两可的,既不是模糊的也不是不完整的
或修辞:不是:对我的问题的回答并不明显
,无法合理回答:几个人已经对该问题给出了很好的答案,表明该问题可以合理回答。
如何对答案进行评分并确定接受的答案似乎也很明显。如果答案给出了XML出现问题的充分原因,则有可能该答案将被投票通过,然后被接受。
我是一名优秀的程序员,十分优秀!