信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