今天看了一篇blog,讲XML的缺点。大意是XML不够简洁。
比如:
fruit=pear
vegetable=carrot
topping=wax
------------------------------------
<doc>
<fruit>pear</fruit>
<vegetable>carrot</vegetable>
<topping>wax</topping>
</doc>
我觉得这个例子要说明的问题其实就是XML很强大,有时候面对简单的问题,显得杀鸡用牛刀了。
XML能描述树型结构,而如果要描述的东西不是树型的时候,简单的key=value形式更简单高效。
凡事无绝对,.ini文件也能描述树型结构,windows的注册表导出成.reg文件时,其实就是.ini文件的结构。
很多人一定记得微软推出注册表替代“落后”的.ini文件之后的若干年之后,居然又自拍巴掌说注册表Hell,在.net平台上,力推xml做config文件。而同时,linux/unix世界里,属性文件一直沿用,不管是系统参数还是应用程序的配置文件,一直都是key=value。java世界里,同时有.properties和xml文件作配置文件。
所以,就算XML多么强大,简单的属性文件永远不会消失,简单就是美,人在崇拜完新技术之后,又不自觉的回头拿起榔头和钉子。
比如:
fruit=pear
vegetable=carrot
topping=wax
------------------------------------
<doc>
<fruit>pear</fruit>
<vegetable>carrot</vegetable>
<topping>wax</topping>
</doc>
我觉得这个例子要说明的问题其实就是XML很强大,有时候面对简单的问题,显得杀鸡用牛刀了。
XML能描述树型结构,而如果要描述的东西不是树型的时候,简单的key=value形式更简单高效。
凡事无绝对,.ini文件也能描述树型结构,windows的注册表导出成.reg文件时,其实就是.ini文件的结构。
很多人一定记得微软推出注册表替代“落后”的.ini文件之后的若干年之后,居然又自拍巴掌说注册表Hell,在.net平台上,力推xml做config文件。而同时,linux/unix世界里,属性文件一直沿用,不管是系统参数还是应用程序的配置文件,一直都是key=value。java世界里,同时有.properties和xml文件作配置文件。
所以,就算XML多么强大,简单的属性文件永远不会消失,简单就是美,人在崇拜完新技术之后,又不自觉的回头拿起榔头和钉子。