XML入门

来源:互联网 发布:linux嵌入式开发招聘 编辑:程序博客网 时间:2024/06/06 02:08

工作中遇到一些xml文件,之前都只是听过名字,今天来认真了解一下它到底是什么。
博客来源:W3School

XML简介

XML是 可扩展标记语言 (Extensible Markup Language)
XML也是一种标记语言,很类似HTML
但是,XML被设计用来传输和存储数据;HTML被设计用来显示数据
XML的标签没有被预定义,需要使用者自行定义标签。
XML被设计为具有自我描述性,是W3C的推荐标准。

由上边的介绍可知,其实XML和HTML都是标记语言,但是彼此存在的目的不用,作用也不同。HTML旨在显示信息,而XML旨在传输信息。

XML是没有任何行为的。也就是说,XML不会做任何事情,只被用来结构化,存储以及传输信息

例如,我们把John写给George的便签存储为XML:

<?xml version="1.0" encoding="ISO-8859-1"?><note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>

这条便签具有自我描述性,能够显而易见的看出其中的标题,留言,发送者,接受者等信息。

但是这个XML没做任何事,仅仅是把一条便签信息包装成XML文件,我们要编写程序才能传送接受和显示这个文档。

XML 是独立于软件和硬件的信息传输工具

XML 用途

XML 应用于web开发的许多方面,常用语简化数据的存储和共享。

XML 把数据从HTML 分离
如果要在HTML文档中显示动态数据,那么每当数据改变时要花时间编辑HTML。

通过XML,数据能存储在独立的XML 文件中。让HTML专注于布局和现实,保证修改数据对显示不做影响即可。

通过几行javascript,就可以读取一个外部XML文件,然后更新HTML中的数据内容。

由于不同的软件/硬件使用不兼容的格式来存储数据,所以XML提供了独立的纯文本存储方法,让不同的程序之间共享数据变得简单,也让数据得以在不兼容的系统之间进行轻松的交换。

也有很多新的Interent语言是通过XML创建的:

  • XHTML - 最新的 HTML 版本
  • WSDL - 用于描述可用的 web service
  • WAP 和 WML - 用于手持设备的标记语言
  • RSS - 用于 RSS feed 的语言
  • RDF 和 OWL - 用于描述资源和本体

XML 树结构

XML 文档形成了一种树结构,可以类比HTML的DOM树

再看之前那个XML文档实例:

<?xml version="1.0" encoding="ISO-8859-1"?><note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>

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

接下来通过自定义标签来表述信息,可以显而易见的看出这是一个便签<note>,其中包含<from><to><heading><body>4个子元素,他们都要用类似的形式来闭合结尾。能看出XML的自我描述性很强。

XML必须包含根元素,它是所有元素的父元素(类比一下,HTML的根元素是<html>元素),其他元素都包含在他里面。

XML语法

XML元素的标签 一定要 闭合。
XML声明不属于XML本身的组成部分,他不是XML元素,所以不用闭合。
XML对大小写敏感。

XML也有属性,写法跟HTML类似,属性值要加引号

XML中,有一些字符有特殊意义,不能直接写,要使用字符实体:

  • < 小于
  • > 大于
  • & 和号
  • ’ 单引号
  • ” 引号

XML中注释使用和HTML中一致:

<!-- 在这里写注释 -->

在HTML中,多个空格会被缩减合并为1个空格;而XML中,会保留。

XML 元素

XML元素可以包含文本和其他元素。
XML元素有属性。

XML 命名规则
XML 元素必须遵循以下命名规则:

  • 名称可以含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字符 “xml”(或者 XML、Xml)开始
  • 名称不能包含空格
  • 可使用任何名称,没有保留的字词。

最好使用<book_title></book_title> 这种命名习惯。

XML元素是可扩展的:
在XML中增加信息,并不会影响原本读取XML的程序。

XML 属性

XML元素可以在开始标签中包含属性,类似HTML
属性提供关于元素的额外附加信息。但是尽量避免使用属性,改用子元素放置信息。

例子:

<!-- 使用属性 --><note date="08/08/2008"><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note> <!-- 使用date元素 --><note><date>08/08/2008</date><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note> <!-- 使用扩展了的date元素(最好的方式) --><note><date>  <day>08</day>  <month>08</month>  <year>2008</year></date><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>

在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

XML 验证

拥有正确语法的 XML 被称为“形式良好”的XML
通过DTD验证的XML是“合法的XML”

DTD 的作用是定义 XML 文档的结构。

XML 验证器

XML错误会终止你的程序。

XML 浏览器支持

几乎所有的主流浏览器均支持 XML 和 XSLT。

查看 XML 文件

在所有现代浏览器中,均能够查看原始的 XML 文件。

不要指望 XML 文件会直接显示为 HTML 页面。

XMLHttpRequest 对象

XMLHttpRequest对象用于在后台与服务器交换数据。

这一串看起来很眼熟有没有,这不就是ajax嘛!

原来AJAX = “Asynchronous Javascript And XML”,即异步js和XML。一下子把之前学的东西都接上了。ajax的作用大家都很熟悉了就不赘述了。

所有现代浏览器都内建了供读取和操作XML的XML解析器。
解析器把XML转换为XML DOM对象 - 可通过javascript操作的对象。

0 0