XML学习笔记1:基础内容

简介

可扩展标记语言(Extensible Markup Language,简称:XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。

用途

XML 被设计用来传输和存储数据。

传输数据: XML本质是一段字符串,具有跨平台和跨开发语言的优点,可以用于不同平台不同语言之间的数据传递

配置文件: XML采用树形结构来存储,能清晰的表示数据之间的层级结构,常常用于配置文件,描述软件设置的参数

数据分离: HTML用来显示数据,XML可以把数据做单独存储,通过JS读取外部XML文件来更新网页内容,这样在数据改动的时候不需要花大量的时间来改动HTML。

XML结构

每个XML文档都由XML序言开始,<?xml version="1.0"?>, 这一行代码会告诉解析器或浏览器这个文件应该按照XML规则进行解析。XML 文档必须包含根元素。该元素是所有其他元素的父元素。
XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。

XML语法

文档声明

文档声明必须在xml的第一行出现,而且只能出现一次。

<?xml version="1.0" ?>所有的问号空格都必须是英文半角,version代表当前xml所遵循的规范,到目前位置都是1.0规范

<?xml version="1.0" encoding="gb2312" ?> encoding属性指定当前xml所使用的编码集,解析器将用该编码集去解码xml。

<?xml version="1.0" standalone="no" ?> standalone属性声明当前文档是否是一个独立的文档,默认值为yes,如果该文档要依存于其他文档存在,则应该将此属性设置为no

元素

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。必须遵循以下命名规则:

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • 名称不能包含空格

标签可以嵌套子标签,注意所有的嵌套都必须是合理嵌套。
格式良好的xml必须包含且只能包含一个根标签。

属性

XML 元素的属性类型 HTML ,提供有关元素的额外信息,不属于数据组成部分。
eg:

XML 的属性值必须被单引号或者双引号包围,也要遵循和元素相同的命名规范。
属性和元素之间可以转化,eg: 下面两种表示在内容上是等效的

在XML使用过程中,为了数据解析更加准确和提高数据的利用率,应该尽量避免使用属性。

注释

在 XML 中编写注释的语法与 HTML 的语法很相似。

注意:注释不能出现在文档声明之前,不能嵌套。

转义字符

字符 转义字符
&lt; <
&gt; >
&amp; &
&apos;
&quot;

在 XML 中,只有字符 “<” 和 “&” 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

处理指令

用来通知解析器以何种方式去解析xml

约束技术

XML 约束技术就是是约束 XML 文档写法的一个文档
W3C 标准组织发布了两种常用的约束技术:DTD, SChema.

查看

所有的现代浏览器都支持直接查看xml文件。

菜鸟教程上的一段XML代码如下:

点击链接查看显示效果

参考

  1. 维基百科:XML
  2. 菜鸟教程: XML教程
  3. W3School教程:XML教程

版权声明

  1. 本文由 Howie Lee 发表,采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。请确保你已了解许可协议,并在 转载 时声明。
  2. 转载请注明来源,本文固定链接:http://www.lifower.com/?p=115

——文章采用PyPoster离线发布,欢迎到GitHub支持原作者!