基础知识之XML

一、什么是XML

全称:Extensible Markup Language

中文名:可扩展标记语言

用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定义数据类型,允许用户对自己的标记语言进行定义的源语言。

XML主要用途是什么?

XML用于传输数据与存储数据。

二、XML和HTML的区别

1)html标签不能自定义,从标签上不能达到“见词知意”的目的

<table></table>

<表格></表格>

2)html将数据与格式绑定在一起

xml只负责数据的传输与存储,其标签没有任何意义

3)不同浏览器解html不同

html语法要求不严格

等等

html主要用于数据的显示,xml主要用于数据传输

三、XML的应用场景

1,充当程序间交互的中间件

2,小型数据库

四、XML的基本语法

1 文档声明

2 元素

3元素属性

4注释

5 特殊字符

6 CDATA区段

7 处理指令

第一部分:文档声明

文档声明必须在XML文档的第一行,按照严格的XML语法,声明语句前面不应该有空行。

最简单的声明语句,version属性表示XML版本,是必须的。

<?xml version="1.0" ?>

用encoding属性说明文档字符编码,不是必须的。当没有声明时,解析器默认以utf-8,或者utf-16对其解读。

<?xml version="1.0" encoding="GB2312" ?>

用standalone属性说明文档是否独立,属性值可以是yes或者no,不是必须的

<?xml version="1.0" encoding="GB2312" standalone="yes" ?>

关于encoding属性的设置:写包含中文内容的XML时,如若编码声明不当,会导致解析器无法正常解析。注意两点:(保证源文件编码与声明语句声明的编码要一致,encoding属性告诉解析器以特定的编码解析源文件)

编辑的源文件应该保存为utf-8,GBK,GB2312其中一个编码。
在XML声明中encoding属性值要和第一点中选择的编码相同。如果保存为utf-8,可以不用在XML声明中声明,解析器会自动解析。如果用GB2312,则在encoding属性的值一定要是GB2312。

第二部分:元素定义

一个XML元素有一个开始标记和一个对应的结束标记来定义,标记中间是内容

严格的XML语法规定必须有且只有一个根元素
元素标记名称规范:可以包含字母,数字以及其它字符
区分大小写,<p/>和<P/>是不同标记
不能以数字或者下划线“_”开头
不能以字符组合xml,或者Xml,xMl,xmL,XMl,xML,XML(即xml的大小写任何组合)等开头。
不能包含空格,<书 名></书 名>是错误的。
不能包含冒号“:”
推荐的元素标记命名建议:
命名尽量简短,减少XML大小
慎重使用非英文字符,某些应用程序可能不支持非英文字符。
不要使用点号“.”,点号在很多程序语言中表示引用等特殊含义。
不要使用减号“-”,以下划线“_”代替,避免与表达式中的减号运算符冲突。

第三部分:元素属性

一个标签可以有多个属性。
Xml代码 收藏代码
<售价 单位="元" >58</售价>

属性可以被改写成以子元素的形式来描述信息,效果相同。
<售价>
<单位>元</单位>
<价格>58</价格>
</售价>
属性值一定要用双引号或者单引号括起来。
属性命名规则与标签命名规则一样。

第四部分:注释

示例
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 注释 -->
<书架>
<书>
<书名>好书</书名>
<作者>某人</作者>
</书>
</书架>
注释不能出现在XML声明之前。
一对注释符号之间不能包含另外一对注释符号,一下为错误的示例
<!-- 注释
.......
.......
<!-- 局部注释 -->
.......

-->
注释中出现中文无法解析问题: 解析器虽然会忽略注释内容,但是解析器对内容执行了读取动作,如若编码不当,就会出现无法解析问题。由于解析器读取注释内容与读取标签等其它内容后的处

第五部分:特殊字符的转义

特殊字符 转义符号
& &amp;
< &lt;
> &gt;
" &quot;
' &apos;

注意:如果需要表示像&amp这样一个字符,需要转义成&amp;amp

'' 和 ' 符号的转义一般用于属性值中,& 和 < 和 > 一般用于开始标签与结束标签之间的字符数据中。

字符数据可以是不包括任何标记的起始界定符和CDTA段定界符的任意字符串(即和号“&”和小于号“<”和 符号“]]>”),如:正确:<data>/</data>;错误:<data>&</data>;错误:<data>]]></data>

正确:<data>&amp;</data>


第六部分:CDATA区

示例
<script>
<![CDATA[
for(var i = 0; i < 10; i ++) {

}
]]>
</script>

CDATA区(charater data的缩写)内的内容XML解析器不会对其进行解析,它会原封不动地交给下游程序处理。
CDATA区内不能出现字符串“]]>”例如以下错误示例
<javaCode>
<![CDATA[
if(array[num[i]]>10) {

}
]]>
</javaCode>
解决方法1.在“]]”与“>”之间插入一个空格;解决方法2:将字符串“]]>”分开放到两个CDATA区中

第七部分:处理指令(processing instruction,简称PI)

PI以“<?”开头,以“?>”结尾。
XML分析器吧处理指令原封不动传给应用程序,由应用程序来解析这个指令,遵照PI提供的信息要求进行处理。例如,在XML文档中,可以包含以下PI告诉浏览器使用book.css控制其显示效果

<?xml-stylesheet type="text/css" href="book.css"?>

示例:本示例通过在demo_PI.xml中设置PI语句引用dog.css控制demo_PI.xml文件在浏览器端的显示效果。

Demo_pi.xml代码 收藏代码

<?xml version="1.0" ?>
<?xml-stylesheet type="text/css" href="dog.css" ?>
<dog>
<name>BigYellow</name>
<owner>大傻</owner>
<breed>sinoGun</breed>
</dog>


注意:xml-stylesheet处理指令总是放在XML声明之后,第一个元素之前。其它指令可以放在除标记内部和XML声明之前的任何位置。“<?”与“xml-stylesheet”之间不能有空格。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值