信XML,得永生!
在计算机的世界里,什么最牛?Javascript?C语言?C++?iPad?还是brainfuck?我个人觉得都不是,这个世界里,XML最NB,这世界到处都充斥着XML,正如在“十条不错的编程观点”文中所说,我们不用XML我们都不知道怎么编程了。下面,让我们来看一看XML的几个真实的示例,相信你会同意我的观点的。
目录
一、如何用XML返回数据库SQL查询结果
<?xml version="1.0" encoding="iso-8859-1" ?> <result> <fields> <field>NAME</field> <field>LAST NAME</field> <field>MOTHER MAIDEN NAME</field> <field>BIRTHDATE</field> ... </fields> <data> <row> <value>MARLENE</value> <value>RUTH</value> <value>DE MARCO</value> <value>1973-02-24 00:00:00</value> ... </row> </data> </result>
二、如何用XML序列化一个图片
<attachments xmlns = "http://webservices..." > <bytes>37</bytes> <bytes>80</bytes> <bytes>68</bytes> <bytes>70</bytes> <bytes>45</bytes> <bytes>49</bytes> <bytes>46</bytes> <bytes>52</bytes> <bytes>10</bytes> <bytes>37</bytes> <bytes>-30</bytes> <bytes>-29</bytes> <bytes>-49</bytes> <bytes>-45</bytes> <bytes>10</bytes> <bytes>52</bytes> <bytes>32</bytes> <bytes>48</bytes> <bytes>32</bytes> <bytes>111</bytes> ... ... ...
三、如何让XML与CSV格式兼容
<?xml version="1.0" encoding="iso8859-1" ?> <import tag="1stTEST" type="data" mode="update"> <options> <dateformat mmddyyyy="true"/> <notification> <EMail>[email protected]</EMail> </notification> </options> <fields> <field name="name" type="char" mapsto="person.data"/> <field name="officeid" type="char" mapsto="custom.locationid"/> <field name="startyear" type="char" mapsto="person.yearstarted"/> <field name="personelid" type="int" mapsto="person.id"/> <field name="dob" type="date" mapsto="person.dateofbith"/> <field name="sex" type="char" mapsto="person.sex"/> <field name="modified" type="date" mapsto="record.modified"/> </fields> <csvdata columnheaders="false"> <![CDATA[ "Jack Wade",214,2002,111012,07/04/1975,"M",02/11/2006 "Sam Davidson",214,1999,104841,10/15/1967,"M",02/10/2006 "Denise V Law",214,1998,104660,01/21/1971,"F",02/17/2006 "Lisa Blake",214,1989,100987,08/01/1982,"F",01/21/2006 "Andrew Match",214,1991,101074,12/25/1980,"M",02/28/2006 ]]> </csvdata> </import>
四、如何把XML当成数组来用
<rootNode> <numberOfAddresses>110</numberOfAddresses> <address_1>442 Fake St.</address_1> <address_2>61 Main St.</address_2> ... ... ... <address_110>3881 N 4th Ave. #5D</address_110> </rootNode>
相信你一定有比这更牛X的例子,欢迎与我们分享!
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《信XML,得永生!》的相关评论
json呢
gccxml:把 gcc 的语法解析结果转换成 xml
基于 LLVM 的 clang 前端去用 Graphviz 可视化效果也很好 (可是好像不能直接画 dot 图
[code lang=bash]
clang -cc1 -ast-dump
clang -emit-ast -xc – -o –
clang -S -emit-llvm foo.c -o foo.ll
llc -cfg-func-name=boo foo.ll -view-edge-bundles
[/code]
GCC 上,好像也可以输出 AST dump 后用 AWK 什么的处理成 dot 格式看,具体《深入分析 GCC》这本书好像有写到
个人觉得json更有趣 不过xml有现成的支持 比如浏览器一般都支持 xslt
check这个
http://jyf-code.googlecode.com/svn/trunk/php/pinbb/doc/demo.tar
XML现在做的事,是LISP以前就可以做的事 :D
在很多领域已经不如json了,只是部分编程语言还没有很好的json转换库。
顶json
里说的是反的吧。。。
4)XML is highly overrated
XML可能被高估了。XML对于Web上的应用是不错的,但是我们把其用到了各种地方,好像没有XML,我们都不会编程了。
sgml研究过了再来说xml的强大吧,连xml的来龙去脉都没搞懂就在这里瞎嚷嚷什么
性能,性能,性能!SOAP基于xml做异构通信,慢的一塌糊涂。
110
442 Fake St.
61 Main St.
…
…
…
3881 N 4th Ave. #5D
这样是否会好些。。。
我以为大家能够看懂,但我错了。我的这篇文章是在调侃XML,全是反话啊,文中的四种用法全是相当Stupid的用法。大家没有读懂吗?哦滴神啊……
蛤蛤蛤蛤蛤蛤友军被厚葬了
倒,输入的xml标签全部被过滤了。。。
我错了……
@陈皓 完全看反了….
不管怎么说 XML现成的代码太多了 太方便了 就好像指针一样
看到序列化图片那个段落的时候就笑喷了。。
@陈皓
以你的回复为界限.
看看大家的回复.
很有意思..
MathML就是一个很牛X的例子
如何用XML序列化一个图片
明天我把所有的图片都这样保存一定很酷,但估计要在买几个盘!
用XML用的少,就看出来“XML序列化一个图片”这个挺雷的,原来是反讽啊,呵呵
…….是有些讽刺…我以进来就感觉到了这篇文章的意思其实讽喻,我没有什么很高的编程功底,不过我读过不少的XML,其令人难解之处却是不少
Life is short , use JSON .
@陈皓
的确
重新考虑了一下,序列化任意二进制文件应该是这样:
参考XEP-0239: Binary XMPP http://xmpp.org/extensions/xep-0239.html
比起SGML就是渣。
新知识 充电学习了 能够转载吗
试试protocol buffer?@胖子
支持JSON
不 ,这是信lisp得永生
hhhh 现在 Android 上 View XML 和 JavaEE 一些 XML 的用法也蛮“厉害”
虽然都是解决些很 trivial 的问题吧,对于 JavaEE 也是为了(可能的)把开发和运维分开的原因,反正就是各种直觉不友好
据说一些软件用 XML 的时候甚至会利用『表达式语言』来支持 XML 的预处理… 和 Swagger 有的一拼
网垠一篇文章里提到(忘记是那篇了…)
Swagger 是使用 YAML 的(以前用 JSON)并且可以使用诸如
$ref
这样的预处理标签来做项目的模块化,不过即使这样也是造成了冗余,我写过一个算是 Quick Hack 的东西,从自己定义的 DSL 里解析结构,然后自动生成 SpringBoot 的 endpoint 定义,结果比 Swagger 的省了不少无用缩进,数据应该是横过来的才好看,一大堆重复的东西… 反而难阅读https://github.com/duangsuse/GeekSpec-GeekApkv1.0b
Maven 的 POM http://maven.apache.org/xsd/maven-4.0.0.xsd 我记了好几天才勉强记住一个模板,虽然数据量本身不大,但是 XML 的表示方式真的反直觉
顶json