| 域名空间 下载中心 社区论坛 信息公告 MY小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
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</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=" Alan Turing </person> 其中红色标记的born和died就是属性。其中born是属性名, <person died = ' 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=" Alan Turing </person> 上面的是非法的xml文件。 接着我们看看特殊字符带来的问题。由于<和>是作为标记使用的,所以一般情况下我们不能在数据部分直接包含<和>,而是使用<和> ,其实这个问题在html里面就有了,处理方式也是和html一样,比如&我们使用& ,双引号”使用"等。 再看看注释,方法和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. e n c o d i n g—可选;值必须是一种合法的字符编码,例如“ U T F - “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 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||