博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml入门
阅读量:5913 次
发布时间:2019-06-19

本文共 2447 字,大约阅读时间需要 8 分钟。

1、why xml?


如果说是一种轻量级的数据交换格式,那么xml就是重量级的。xml应用于web开发的许多方面,常用于简化数据的存储和共享。永远要记住,xml跟JSON一样是用来存储传输数据的,而非显示数据,显示数据是html干的活。

xml是不作为的,xml不会做任何事情,它仅仅是纯文本,是包装在xml标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。

举个简单的例子,博客园的文章备份就是用xml存储的(存储的仅仅是纯文本),一旦需要就把它上传,博客园服务器应该会有个解析器解析该文件(xml文档需要软件解析)。

2、一个简单的xml文档


George
John
Reminder
Don't forget the meeting!

我们看到以上的代码,是John给George的一个便签,被存储为.xml后缀的文件。前面说过,xml用于数据的储存和传输,所以当George收到文件时,就会用特定的解析器去解析(可能生成html文件),这样就会直观地显示数据。

接着来分析下以上xml文件的构成。

第一行是xml声明。它定义xml的版本(1.0)和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。

下一行描述文档的根元素(像在说:“本文档是一个便签”):

接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body):

George
John
Reminder
Don't forget the meeting!

最后一行定义根元素的结尾:

 

xml文档形成了一个树结构(和html的dom树类似),xml文档必须包含根元素,该元素是其他所有元素的父元素。

3、xml语法


xml语法很简单,特别是针对有强迫症的童鞋。

  1. 所有 XML 元素都须有关闭标签
  2. XML 标签对大小写敏感,必须使用相同的大小写来编写打开标签和关闭标签
  3. XML 必须正确地嵌套
  4. XML 文档必须有根元素
  5. XML 的属性值须加引号
  6. 实体引用
  7. XML 中的注释
  8. 在 XML 中,空格会被保留

这里解释下6、7、8,5可以参考下一小节。

  • 实体引用:

在xml中,一些字符拥有特殊的意义。如果你把字符<放在xml元素中,会发生错误,这是因为解析器会把它当做新元素的开始。比如这样:

< George

为避免这样的错误,使用实体引用来代替<字符:

< George

在xml中,有5个预定义的实体引用。只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

200917518162238.png

  • xml中的注释:

在xml中编写注释的语法和HTML的语法类似:

  • 在xml中,空格会被保留:

HTML会把多个连续的空格字符裁减(合并)为一个,但是xml文档中的空格会被保留(尽管在浏览器中没有显示):

文档中: 
Han Zichi
实际显示:
Han Zichi

4、xml元素


xml元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

Harry Potter
J K. Rowling
2005
29.99
Learning XML
Erik T. Ray
2003
39.95

在上例中,<bookstore><book> 都拥有元素内容,因为它们包含了其他元素。<author> 只有文本内容,因为它仅包含文本。在上例中,只有 <book> 元素拥有属性 (category="CHILDREN")

XML 命名规则:

  1. 名称可以含字母、数字以及其他的字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能以字符 “xml”(或者 XML、Xml)开始
  4. 名称不能包含空格
  5. 推荐用下划线_来命名,比如<book_title>

可使用任何名称,没有保留的字词。

5、xml属性


xml元素可以在开始标签中包含属性,类似HTML,属性值必须被引号包围(单引双引均可)。属性(Attribute)提供关于元素的额外(附加)信息。

属性通常提供不属于数据组成部分的信息。在下面的例子中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:

computer.gif

xml元素 vs 属性:

Anna
Smith
female
Anna
Smith

在第一个例子中,sex 是一个属性。在第二个例子中,sex 则是一个子元素。两个例子均可提供相同的信息。没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素。我的经验是在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。

转载地址:http://lfmpx.baihongyu.com/

你可能感兴趣的文章
适配器模式
查看>>
【转载】程序员:增加编程经验的3种途径
查看>>
Servlet容器启动过程
查看>>
java并发多线程显式锁Condition条件简介分析与监视器 多线程下篇(四)
查看>>
iis7.5中做 handler配置
查看>>
如何实现多个异步同步执行?
查看>>
线程的定时器Timer
查看>>
spring异常
查看>>
复合文字
查看>>
利用excel办公软件快速拼凑sql语句
查看>>
Python语音合成
查看>>
Hadoop学习笔记(1) ——菜鸟入门
查看>>
Twisted模块
查看>>
异常以及异常处理框架探析
查看>>
洛谷P2805 植物大战僵尸
查看>>
后缀数组专题
查看>>
一次因为文件名开头包含空格而导致FTP文件一直无法下载的悲剧!
查看>>
linux测试某进程占用oi、cpu、内存的使用情况
查看>>
jQery简单Tab选项卡效果
查看>>
Java Object类及其equals方法
查看>>