XML
XML 可扩展标记语言(EXtensible Markup Language ) 被设计为传输和存储数据,XML 文档结构包括 XML 声明、DTD 文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从 HTML 分离,是独立于软件和硬件的信息传输工具。
xml用来干什么
- 应用于程序之间的数据传输问题,xml格式来传输数据有良好的可读性和维护性
- 作为配置文件来使用非常常见,web.xml,pom.xml等等
- 还可以充当小型数据库来存取人工配置的数据
xml的语法
- 文档声明
- 元素
- 属性
- 注释
- CDATA区、特殊字符
- 处理指令(processing instruction)
文档声明
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
就是用来说明这是一个xml文档,约定了字符编码格式,还有是否独立使用
version –文档符合XML1.0规范,现在大部分也都是1.0
encoding –文档字符编码,比如”GB2312”或者”UTF-8”
standalone –文档定义是否独立使用 no为默认值。yes代表是独立使用
元素
元素就是类似html的标签,用来标志xml文档的内容格式,一个文档有且只有一个根元素
,就是扩在最外面的元素叫做根元素
有两种写法
- 含标签体的
<aaaa>xml标签</aaaa>
- 不含标签体的
<aaaa/>
一些规则
- 元素里面可以嵌套子元素但是不能下面这样交叉嵌套
<a>aaaa <b> bbbb </a></b>
- 空格和换行都会解析成不一样的效果
<a>aaaa</a>
和
<a>
aaaa
</a>
是不一样的
- 还有一些命名规范 xml元素可以包含字母数字和其他一些可见字符,区分大小写
不能以数字或下划线”_”开头 ,元素内不能包含空格 , 名称中间不能包含冒号(:),
可以使用中文,但一般不这么用
属性
<student id="100">
<name>Tom</name>
</student>
就是在元素的名字后空格在加上属性名和值,一个key-valvue的键值对,来标明特定的元素,同样元素多的时候可以加属性来区分
一个元素可以有多个属性
<元素名 属性名1="属性值1" 属性名2="属性值2">
属性值用双引号(”)或单引号(’)分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体(转义字符)就是html的实体 <代表<之类的。
注释
<!--这是一个注释 -- >
注释就是这样,和其他的注释大差不差
注释中不能出现–,不能在标记中注释其他地方都可以,不能嵌套注释
CDATA节
当我们用xml传递图片的时候,我们是先将图片的二进制的字符传过去再解析成图片
但是这样会包含大量的<,>,&或者“等一些特殊的不合法的字符。这时候解析引擎是会报错的。所以要用CDATA节
<![CDATA[
......
]]>
CDATA节中可以输入任意字符(除]]>
外),但是不能嵌套!他就是把这些不合法字符在这个区域当做原始内容处理,用于把整段文本解释为纯字符数据而不是标记。
处理指令
<?xml-stylesheet href="my.css" type="text/css"?>
处理指令用来指示解析引擎如何解析XML文件,加上css样式来解析xml文档,不是很常用
本文参考于# XML——XML介绍和基本语法