以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  XML初学者必读  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=8391)


--  作者:hsower
--  发布时间:6/19/2004 2:36:00 PM

--  XML初学者必读
差不多每天都有人问“什么是 XML”,“XML 能做什么”,“XML 能不能替我做这个”,“XML 会取代什么” 等等诸如此类的问题。由于最近一段时间稍微对 xml 使用了一下,我来谈谈自己的感觉。这些经验都很浅显,任何一个用过 xml 的人都有,并且见仁见智,只不过我算刚刚走过这段路,对自己一开始的困惑,误解还记得清,所以拿出来和大家分享一下。    


我觉得初学者可能会走近的误区:    

1. XML 是不是 HTML 的取代者    

不是。写得好的 html 应该是一个 well-formed 的 xml 文档,其他方面最好不要把他们放在一个水平线上比较    


2. XML 是不是数据库的取代者    

不是。    


3. XML 是不是...的取代者    

都不是。    


这个结论可能听上去很滑稽:XML 是非常非常重要的东西,但它什么都取代不了。但这并不奇怪,有人把它比做 ASCII 标准,他们是一切一切的基础,但并没有(也不需要)取代什么。(但是就如同 ASCII 取代了一些没有成大器的字符集定义,XML 也会取代你在应用中自己定义的一些数据传输规范,但没有什么特别主流的东西。)    


刚开始学 XML (或者说没开始学之前)的时候最爱问的一个问题肯定是:使用 XML 能给我带来什么好处?    

我觉得从某种角度上说,使用 XML 有些象使用 OO 面向对象:    

- 你可以用它,你也可以不用它。    

- 如果你的应用非常简单,用它不一定方便,没准儿用了效果还会更差。    

- 和其他实际东西比如数据库,MTS,Web Server比起来,它更像是一个概念,一种方法    

- 项目越大,它的发挥余地越大,作用越大。    

- 一旦真正理解后,哪怕不用 xml parser,也不妨碍你使用这个概念,如同可以抛开特定语言使用 OO。    

- ......    

好像更抽象,更没谱儿了吧。    

那就随便举个例子。比如你本来想在 bbs 应用中的两个模块之间传一些数据:    

- 发言人    

- 密码    

- 标题    

- 内容    

使用四个参数是不太现实的,因为你随时可能要扩展功能,比如再加上个    

- 表情符号等等    

不可能每次加个功能,就重新定义一遍函数。    

所以最简单的方法是把他们合并起来作为一个参数传递给函数。    

在有 xml 之前,你可能会使用分隔符:    

str = "发言人=张三;密码=**;标题=abc;内容=xyz"    

到 server 那边使用 dictionary 或 collection 或 split 等等方法把他们拆开。    

(当然可以自己定义对象啦,结构啦等等,但多数情况下还得是纯字符串--比如另一个模块不是自己开发的。)    

这种传递字符串的方法有几个问题,总结成两个最大的方面就是:    

1. 正确的解析它很麻烦。(比如标题正好是“发言人=张三;”怎么办)    

2. 是平面的,没有层次型结构    

你可以写些函数来解决这些问题,比如确保里面肯定有“发言人”,“密码”等等;再写些函数做一下字符转义,再写些函数制造出层次性的效果...    


够了!咱还是用 XML 吧。在我目前浅显的认识里:    

- XML 是用来传递数据的    

- XML 让这些数据有了结构 -- 一个树型结构    

- xml 有全套的操作这种结构的方法    

- xml 规范(或者说的实际点,xml parser)帮你确定你创建的字符串是合法的    

- xml 规范(或者说的实际点,xml parser)中有办法验证这个合法性    

- 对于拿到这个字符串的 server component 来说,可以用 xml 中现成的方法来操作它, 这就是 xpath, pattern,类似于 T-SQL 语句。(但记住 xml 是树型结构的)    

- XSLT 使用 xpath 对 xml 进行转换(类似于 DTS),其中一种特例是把 XML 转换成 HTML 输出。


--  作者:zjsun
--  发布时间:6/22/2004 11:07:00 AM

--  
good
--  作者:lwmgood
--  发布时间:6/22/2004 1:32:00 PM

--  

more
--  作者:yuan1yuan2
--  发布时间:6/28/2004 3:11:00 PM

--  
比较有思想的人!
--  作者:yuan1yuan2
--  发布时间:6/28/2004 3:11:00 PM

--  
比较有思想的人!
--  作者:狂笑天
--  发布时间:6/28/2004 10:58:00 PM

--  
写的比较形象易懂,新手看了明白
--  作者:竹节虫
--  发布时间:6/29/2004 4:51:00 PM

--  
请读发言,我们这些新手欢迎这样的先驱啊
--  作者:yangjinhui
--  发布时间:6/29/2004 6:20:00 PM

--  

请读发言,我们这些新手欢迎这样的先驱啊
怎么样才能入门呢 ?我学了才几天了,但总是找不到头续?
--  作者:spring
--  发布时间:6/30/2004 5:46:00 AM

--  
挺不错的,我是初学者,对于你的讲解我对XML总算是有点了解了。谢谢
--  作者:welcome66
--  发布时间:6/30/2004 6:03:00 PM

--  
我也是初学者,不过学会很容易,具体应用起来就不容易了,总是有纸上谈兵的感觉。
必须有实际的操作,结合实际项目应用起来,效果会更好一些。
XML博大精深,皮毛很容易学会,应用越深,越觉得XML的深奥。
然否?
--  作者:AIDS44
--  发布时间:6/30/2004 6:37:00 PM

--  
有不复杂的实际应用的例子就好了
--  作者:tedd
--  发布时间:7/1/2004 9:35:00 PM

--  
我刚开始学没有几天,什么头绪都没有。哪位可以多帮帮我啊!你们可以加我的QQ153491210
--  作者:fuwenyu
--  发布时间:7/2/2004 12:46:00 PM

--  
同意楼上的说法
--  作者:jiujids
--  发布时间:7/13/2004 4:35:00 PM

--  
恩,写得好,应该出本书的哦,
]呵呵,,
--  作者:abaddon
--  发布时间:7/14/2004 9:15:00 AM

--  
知道很有用,不过用起来真的很麻烦
顶!!
--  作者:AHLiu
--  发布时间:7/15/2004 9:46:00 AM

--  

--  作者:just4u
--  发布时间:7/16/2004 2:27:00 PM

--  
我的问题是如何通过编写SOCKET来发送XML信息,我这个问题问好久了   ,都没有人回答。
--  作者:supernx
--  发布时间:7/17/2004 11:17:00 AM

--  
学习ing
--  作者:KirbyXML
--  发布时间:7/19/2004 9:26:00 AM

--  
楼上的我也有同感
--  作者:harvey11
--  发布时间:7/20/2004 10:58:00 AM

--  
谢谢楼主分享自己心得!给予我们这些初学者许多启迪!支持!!!!
--  作者:kjonline
--  发布时间:7/20/2004 3:30:00 PM

--  
认真看完,大概概念有一点了.

这样的文章要支持!!


--  作者:liuzuofei
--  发布时间:7/20/2004 6:38:00 PM

--  
感觉不是很清楚,是不是高手都这样?
--  作者:mail_j
--  发布时间:10/9/2005 11:53:00 AM

--  
谢谢喽,受益匪浅
--  作者:lorryfang
--  发布时间:10/25/2005 10:43:00 PM

--  
还是不明白
(在C的学习阶段)

--  作者:loloqing
--  发布时间:10/26/2005 7:23:00 PM

--  
我觉得它很难,太零粹了,那么多东西要记住。是不是我学的方法不对啊,我很怀疑,难道xml文档的那么多行代码,都要一行一行写吗?还有xsl。
请教该怎么学?
--  作者:Roham
--  发布时间:10/27/2005 2:46:00 PM

--  
学习中!
--  作者:心灵使唤
--  发布时间:10/27/2005 3:13:00 PM

--  
刚刚接触,还是有些不太明白,不过看了楼主的叙述还是有点头序的!
--  作者:wusuowei_qsj
--  发布时间:10/30/2005 12:46:00 AM

--  
我也是个新手!刚刚接触不久!很想学好他!
--  作者:jxdong1013
--  发布时间:10/30/2005 3:28:00 PM

--  
好啊!初学者的必看啊!谢谢
--  作者:lywzd
--  发布时间:10/31/2005 10:16:00 AM

--  
感觉这东西只有在实际项目中用一下才可以真正体会他的好处吧
--  作者:zhonghua4541
--  发布时间:10/31/2005 11:46:00 AM

--  
开始有点了解了
--  作者:hqh200023607
--  发布时间:11/9/2005 7:33:00 PM

--  
确实不错,对这样的初学者帮助很大!非常感谢!使我明白了XML的一些基本东西
--  作者:yifengrxw
--  发布时间:11/10/2005 10:19:00 AM

--  
看起来是不错,但是没有具体的东西,不过思想始终都是最重要的!顶你一次 !
--  作者:Eilien.D
--  发布时间:11/12/2005 10:53:00 AM

--  
谢谢!
--  作者:hama
--  发布时间:11/12/2005 12:49:00 PM

--  
真的什么取代都取代不了吗?
--  作者:hama
--  发布时间:11/12/2005 12:52:00 PM

--  
不明白!
--  作者:matida
--  发布时间:11/14/2005 11:52:00 AM

--  
不像对初学者说的
--  作者:wling
--  发布时间:11/15/2005 11:06:00 AM

--  
怎么说呢,我觉得还是比较抽象!
--  作者:w3cxxwz
--  发布时间:11/15/2005 2:59:00 PM

--  
呵呵,不错,适合我们初学者,要不然稀里糊涂的看看这本书看看那本书,没个头绪!
我觉得再学一门新东西之前能先大致象这样了解一下有个头绪会比较好:)
--  作者:梦舞天堂
--  发布时间:11/15/2005 7:44:00 PM

--  
虽然不是很明白
但是大致还是了解了一些
嘿嘿~~ 有了个头绪阿
顶一下
--  作者:jupitera
--  发布时间:11/17/2005 4:59:00 PM

--  
我是一个初学者,XML好难呀!
--  作者:fight611
--  发布时间:11/18/2005 8:26:00 AM

--  
看起来挺有意思的嘿嘿偶是新手,看来要好好学了
--  作者:taohongzhi
--  发布时间:11/18/2005 6:46:00 PM

--  
这样的啊
--  作者:seakye
--  发布时间:11/19/2005 3:15:00 PM

--  
ok
--  作者:bierbin
--  发布时间:11/19/2005 8:07:00 PM

--  
读完了,感觉对某些概念清晰了很多,谢谢楼主!
--  作者:leniz
--  发布时间:11/21/2005 9:47:00 PM

--  
收到。
--  作者:jinwm
--  发布时间:11/23/2005 3:26:00 PM

--  
我也是初学者,不过学会很容易,具体应用起来就不容易了,总是有纸上谈兵的感觉。

--  作者:hjx_221
--  发布时间:11/23/2005 7:19:00 PM

--  
hope we will get more from you:)

--  作者:moonlight090
--  发布时间:11/24/2005 9:35:00 AM

--  
好文章,有思想,通俗易懂
--  作者:zhouhua86
--  发布时间:11/24/2005 11:11:00 AM

--  
不错!
--  作者:zhijunning
--  发布时间:12/17/2005 11:56:00 PM

--  
忽忽,写的不错
--  作者:haiou
--  发布时间:12/19/2005 10:34:00 AM

--  
多谢了!!!
--  作者:jare_xml
--  发布时间:12/19/2005 11:09:00 AM

--  
不错!
--  作者:icebeer
--  发布时间:12/19/2005 12:44:00 PM

--  
hao
--  作者:zzzsss2008
--  发布时间:12/19/2005 4:24:00 PM

--  
请继续
--  作者:33341112
--  发布时间:12/20/2005 11:39:00 AM

--  
谢谢楼主的帖子
--  作者:zgywl
--  发布时间:12/20/2005 2:08:00 PM

--  
要好好看看!好好体会!

--  作者:nmgyjw
--  发布时间:12/21/2005 8:57:00 AM

--  
good
--  作者:nmgyjw
--  发布时间:12/22/2005 8:14:00 AM

--  
哦,学习一下。
--  作者:编程浪子~~
--  发布时间:12/24/2005 8:04:00 PM

--  
赞同
--  作者:wzsfly
--  发布时间:12/24/2005 10:37:00 PM

--  
我是初学者,希望至少能早日入门
--  作者:litt
--  发布时间:12/26/2005 10:57:00 PM

--  
我也是初学者,刚刚起步,需要这方面的提示啊!~多谢!
--  作者:likeyman
--  发布时间:1/1/2006 11:48:00 PM

--  
好,我慢慢体会
--  作者:临渊羡鱼
--  发布时间:1/18/2006 9:40:00 AM

--  
我是个初学者,以后好东西要多多分享哦,谢谢楼主了!
--  作者:gisloveok
--  发布时间:1/20/2006 2:11:00 PM

--  
hsower ,请继续,
--  作者:wangyizong
--  发布时间:1/20/2006 10:25:00 PM

--  
楼主您好,您能加我的QQ吗?(342823351),因为我是做VB的,我想把XML用在其中,但我不知道怎么用,能有时间和我谈谈关于这方面的吗?我现在都还没有入门,但工作中又必须会,所以请大家多帮忙帮忙。
--  作者:dreamw
--  发布时间:1/22/2006 5:56:00 AM

--  
头晕中。。。摸不着头脑!
--  作者:mady
--  发布时间:1/23/2006 4:22:00 PM

--  
还是不明白
--  作者:linlm
--  发布时间:2/7/2006 5:39:00 PM

--  
感谢楼主~~

我刚开始接触XML,有许多与XML有关的新词语和新概念需要去理解并消化,
万事开头难,学习并发扬楼主的学习精神,前进~~~


--  作者:bewilder
--  发布时间:2/9/2006 10:35:00 AM

--  
这是我到XML论坛看的第一个帖子,有些感觉了.
--  作者:zzzzzzsh
--  发布时间:2/9/2006 11:27:00 AM

--  
我不是新手,我是XML盲如何看懂这些东西呢?
--  作者:zzzzzzsh
--  发布时间:2/9/2006 11:36:00 AM

--  
谁能发一个XML格式的数据样子呀?
--  作者:Dragon__007
--  发布时间:2/12/2006 12:13:00 AM

--  
楼主好人
--  作者:yosoqoo
--  发布时间:2/13/2006 4:13:00 PM

--  
大家初学者一起努力哦
--  作者:阿凉
--  发布时间:2/16/2006 3:29:00 PM

--  
不需努力但要坚持!出血者志
--  作者:Taliban
--  发布时间:2/18/2006 11:19:00 PM

--  
喜欢这样的文章
--  作者:xmlspy2004
--  发布时间:2/20/2006 10:27:00 PM

--  
还可以哦!!!
--  作者:yuchen01
--  发布时间:2/21/2006 4:20:00 PM

--  
我也是一个初学者,现在一点多不懂
看了后有了一些概念
--  作者:hnxsl
--  发布时间:2/26/2006 5:26:00 PM

--  
我也是初学者,觉得还好.易懂.
--  作者:nways
--  发布时间:2/27/2006 4:28:00 PM

--  
呵呵,,确实值得我这样的新手读一下。
--  作者:shen_baohua
--  发布时间:3/1/2006 9:08:00 PM

--  
我是新手,看了,感觉不错,有启发!
--  作者:没烟
--  发布时间:3/9/2006 10:58:00 AM

--  
说得不错,受教了!
--  作者:gzkay
--  发布时间:3/9/2006 1:40:00 PM

--  
好精彩的文章 总算知道自己学XML的价值所在了
--  作者:thewbb
--  发布时间:3/10/2006 9:19:00 AM

--  
多谢了,不过有些地方还是一头雾水。
--  作者:personal
--  发布时间:3/11/2006 1:57:00 PM

--  
结构容易,但用起来难度就太大了
--  作者:panzer
--  发布时间:3/12/2006 9:42:00 AM

--  
感谢啊   你简直是我们菜鸟的引领者啊!!   手把手教学  我喜欢........
--  作者:lujuyo
--  发布时间:3/16/2006 10:11:00 PM

--  
同意,高
--  作者:hongming1129
--  发布时间:3/17/2006 12:01:00 AM

--  

不错
易懂易学
--  作者:thinkerjzhx
--  发布时间:3/18/2006 10:32:00 PM

--  
刚开始学,看了好几个教程,有点明白,
又感觉糊涂。
--  作者:sstl
--  发布时间:3/22/2006 1:38:00 PM

--  
谢谢hsower
--  作者:xiaochen00
--  发布时间:3/22/2006 5:14:00 PM

--  
初学者,谢谢了啊,真的对我很有帮助
--  作者:y169
--  发布时间:3/27/2006 9:36:00 PM

--  
看了有一些了解,但具体是什么还是茫然.
--  作者:不太专一
--  发布时间:4/12/2006 8:38:00 AM

--  
正在努力奋斗中````
--  作者:pennant
--  发布时间:4/12/2006 9:15:00 AM

--  
有些感觉
--  作者:lgsh2008
--  发布时间:5/8/2006 10:22:00 AM

--  
顶!我也是初学者,现在用XMLSPY开发,大家多交流QQ81952649。
--  作者:bruceshen
--  发布时间:5/8/2006 11:24:00 AM

--  
刚刚接触,听楼主的发言,真是受益非浅,我还没到达楼主的境界,努力学下中ing........
--  作者:shengna
--  发布时间:5/8/2006 11:47:00 AM

--  
good
--  作者:colourfish
--  发布时间:5/11/2006 3:44:00 PM

--  
真是很有见地,顶UP顶UP顶~~~!!!
--  作者:davidpike
--  发布时间:5/16/2006 1:02:00 PM

--  
对初学者不错,能纠正一些错误的认识!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
312.988ms