通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>XML专区>>正文 新版上线![旧版]
注:打开慢时请稍等

XML基础入门

http://www.iyit.net  日期:2006-5-24 12:04:47  来源:整理转载   点击:
参加讨论】    

讨论xml文件以前我们先看一个例子:

<person>

? Alan Turing

</person>

这就是一个标记完好的xml文件,<person>和</person>分别是开始标记和结束标记。

l开始标记:以<开始,以>结束,中间是标记名称。

l结束标记:以</开始,以>结束,中间是标记名称。

注意:开始标记和结束标记对应的标记名称必须相同,但是具体使用什么作为名称就没有规定,这个和html是不同的(html的标记名是若干个确定的),你可以使用person来标记一个人,使用cat来标记一只猫。

标记中间的Alan Turing就是数据,其中Alan和Turing之间的空格也是数据,也就是说标记里面的数据中的空格不会别忽略。

有时候我们也许需要没有任何数据的元素(元素指开始标记和结束标记之间的内容,包含开始标记和结束标记,比如上面提到的例子就是一个元素),例如下面的:

<person></person>

这是一个空标记,但是我们有另外更简捷的标记表示空标记:

<person/>

注意:xml是区分大小写的,这与html不同。<Person>和<PERSON>是不同标记,比如你有一个元素以<person>开始,那么你就不能使用</ Person >作为结束标记。

上面的例子指含有一个元素,我们现在给出一个复杂点的例子,然后给出xml树的概念。

<person>

<name>

<first_name>Alan</first_name>

<last_name>Turing</last_name>

</name>

<profession>computer scientist</profession>

<profession>mathematician</profession>

<profession>cryptographer</profession>

</person>

显然上面的例子外层仍然是一个person元素,但是与先前不同的是这个元素含有4个子元素,1个name元素和3个profession元素。我们称person是name的父元素,显然他也是profession的父元素,同样我们可以看到name是first_name和last_name的父元素。

上面的例子我们发现标记进行了嵌套,这是允许的。但是重叠标记是非法的,比如:
<strong><em>this common example from HTML</strong></em>

应该是:

<strong><em>this common example from HTML</em></strong>

根据上面的例子中父子元素的关系以及注意到任何xml文件只能且只能含有一个根元素(也就是没有父元素的元素)看起来很象一个树,如图:

现在我们给出一个混合数据的xml文件的例子,

<biography>
<name><first_name>Alan</first_name> <last_name>Turing</last_name>
</name> was one of the first people to truly deserve the name 
<emphasize>computer scientist</emphasize>. Although his contributions 
to the field are too numerous to list, his best-known are the 
eponymous <emphasize>Turing Test</emphasize> and 
<emphasize>Turing Machine</emphasize>.
<definition>The <term>Turing Test</term> is to this day the standard
test for determining whether a computer is truly intelligent. This 
test has yet to be passed. </definition>
<definition>The <term>Turing Machine</term> is an abstract finite 
state automaton with infinite memory that can be proven equivalent 
to any any other finite state automaton with arbitrarily large memory. 
Thus what is true for a Turing machine is true for all equivalent 
machines no matter how implemented.
</definition>
<name><last_name>Turing</last_name></name> was also an accomplished 
<profession>mathematician</profession> and
<profession>cryptographer</profession>. His assistance 
was crucial in helping the Allies decode the German Enigma
machine. He committed suicide on <date><month>June</month> 
<day>7</day>, <year>1954</year></date> after being 
convicted of homosexuality and forced to take female 
hormone injections.
</biography>

上面的例子我不作解释,但是你要知道他是一个合法的xml文件,也就是说标记和内容可以混排。但是这样格式的xml文件在程序的处理上就很麻烦,所以不推荐使用。

接着我们谈谈属性(Attributes)。看例子:

<person born="1912-06-23" died="1954-06-07">

Alan Turing

</person>

其中红色标记的born和died就是属性。其中born是属性名,1912-06-23是属性值,属性值是用”筐起来的,当然也可以用单引号’筐起来。

<person died = '1954-06-07'? born = '1912-06-23' >

Alan Turing

</person>

使用单引号的作用是你可以在属性的值里面添加双引号。

到这里我们发现一个问题:

<person>

<name first="Alan" last="Turing"/>

<profession value="computer scientist"/>

<profession value="mathematician"/>

<profession value="cryptographer"/>

</person>

这个例子中我在person元素里面添加了4个子元素,每个元素有自己的属性,以及对应的值,然后这4个元素都是空元素。对照前面我们给出的对应的例子,你觉得是把值限定在属性里面好还是直接放在标记之间好呢?这是一个争论不休的问题,我的看法是由你自己定,看哪个爽就使用哪个。但是要注意对同一个元素,他不能同时含有几个相同名称的属性。

<person born="1912-06-23" born="1954-06-07">

Alan Turing

</person>

上面的是非法的xml文件。

接着我们看看特殊字符带来的问题。由于<和>是作为标记使用的,所以一般情况下我们不能在数据部分直接包含<和>,而是使用&lt;和&gt; ,其实这个问题在html里面就有了,处理方式也是和html一样,比如&我们使用&amp; ,双引号”使用&quot;等。

再看看注释,方法和html是一样的:

<!-- 左边的是注释开始标记,右边的是结束标记 -->

但是注意注释的内容不能包含? -- ,同时注释里面的任何标记都会被忽略!同时需要注意的是注释不能出现在一个元素的标记里面。

现在我们从整体上来看xml

1. xml声明

所有的xml文档可能(也应该!)由一个xml声明(XML Declaration)开始。虽然文档声

明使用的是同指令处理类似的语法,但从技术上讲,根据X M L推荐标准它们并不是一回事,因

为声明是xml中的保留部分。

<?xml version="1.0" encoding="ASCII" standalone="yes"?>

<person>

Alan Turing

</person>

如果包括X M L声明,它必须处在文档最前面—前面不允许有任何空白或注释。严格地讲,

在X M L当中这种声明并不是必须的,但我们后面会看到,当处理文档时,它确实会起到一些优化的作用。

这些属性已经在XML 1.0规范中做出了定义:

version—不能省略;值必须为“1.0”;该属性用来保证对X M L未来版本的支持。

e n c o d i n g—可选;值必须是一种合法的字符编码,例如“ U T F - 8”、“U T F - 1 6”或者

“I S O - 8 8 5 9 - 1”(即L a t i n - 1字符编码)。所有X M L解析器都要求至少支持U T F - 8和U T F - 1 6。

如果没有包含这个属性,就假设是“ U T F - 8”或“ U T F - 1 6”编码,这取决于开始的“< ? x m l”字符串的格式。

s t a n d a l o n e—可选;值必须是“ y e s”或“n o”;如果是“y e s”就意味着所有必须的实体声明都包含在文档中,如果是“ n o”就意味着需要外部的D T D。DTD将在后面介绍。

最后给出好的xml的相关要求:

1.每个开始标记必须有一个结束标记匹配

2.标记可以嵌套但是不能重叠

3.每个xml文件只有一个根元素

4.一个元素不能含有两个相同名字的属性

5.注释不能出现在元素标记里面

6.没有<或者&等类似的字符出现在元素值或者属性值里面


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:建立MSXML 测试环境
下一篇:XML基础教程:掌握SAX
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
XML和现代CGI应用程序 XML与其相关技术 XML文件的显示——CSS和XSL
给XML文件定义DTD 动态产生XML文档的几种方式 XML初级应用ABC
编写结构完整的XML文档 XML(可扩展标识语言)的产生 构造未来Web页面的工具语言-- XML
XML 入门介绍 XML入门精解之结构与语法 XML基础教程:掌握SAX
建立MSXML 测试环境 XML 论坛 让Asp与XML交互
How to generate XML with SQL 2000 XML的一般信息 存取XML的属性
筛选和排序XML数据 使用XSL样式表来显示XML文件 检查XML文件的有效性
浏览整个XML文件 存取XML实体与卷标 存取与显示XML文件的属性值
最新更新 热点排行 推荐新闻
WML Script标准函数库
WML Script脚本程序设计(二)
WML Script脚本程序设计(一)
WML Script语法基础
WML编程
CGI测试
CGI教程-ErrorDocument 指令
CGI教程-解码数据发送给CGI脚本
跟我学Perl
Perl教学 Perl5的包和模块
Perl教学 Perl的面向对象编程
Perl教学 Perl5中的引用(指针)
Perl教学 格式化输出
Perl教学 关联数组(哈希表)
Perl教学 子程序
WML Script标准函数库
WML Script脚本程序设计(二)
WML Script脚本程序设计(一)
WML Script语法基础
WML编程
优秀公益广告作品欣赏(8)
java数据类型转换
Windows XP专业版IIS连接数的更改
新开放QQ免费挂级网站
优秀公益广告作品欣赏(7)
免费在QQ上看在线电影电视听音乐
QQ珊瑚虫外挂4.0版本发布!
WEB服务器配置全攻略(三)
免费把QQ炫铃设为本机QQ的系统提示音
Office2007简体中文版浮出水面 美图抢
微软将在华推分期付款,充值卡PC 可低价
 AMD处理器AM2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
ASP.NET 2.0 中的异步页功能应用
硬盘坏道修复及数据恢复宝典
免费登录搜索引擎入口大全
搜索引擎注册九大秘法
小心摄像头成为黑客偷窥你的眼睛
内存混插常见问题和解决方法
Office2007简体中文版浮出水面 美图抢
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息