XML指的是,可扩展性标记语言(eXtensible Markup Language)
XML被发明的目的是传输和存储数据
XML的功能是规范数据格式,让数据具有结构性,容易阅读和处理
<root>
<bookname>java</bookname>
<bookprice>15</bookprice>
</root>
这段有一个根元素(也可以叫根节点) < root >。还有两个子元素,< bookname >与< bookprice >
最后一行< /root >是根元素的结尾
xml与html的不同点:
- < bookname >这些标签里面的内容,是自定义的,与html不同
- xml的语言格式更加严格,不能有错误或者缺漏
- xml的作用是传输和存储数据,html是展示数据
可以将写好的xml文件拖入浏览器,通过浏览器,我们可以检查我们写的xml文件是否正确
XML的结构
这里需要注意:
- 所有的xml文档都必须有一个根元素,根元素是所有其他元素的父元素
- 所有的元素(包括子元素)都可以拥有自己的子元素
- 所有元素均可拥有文本内容和属性
关于属性:
- 属性是描述标签本身的一些额外的信息
- 一个标签可以有一到多个属性
- 属性值需要加引号
- 属性名可以是数字字母下划线,但不能以数字开头
注:因为xml中的标签名可以自定义,所以属性一般不会使用,要保存的文本内容和数据一般也不会放在属性值中
<root>
<bookname cover="hello">java</bookname>
<bookprice num="10">15</bookprice>
<bookcolor>
<color>blue</color>
<color>green</color>
</bookcolor>
</root>
这里的根元素是root,其下有子元素bookname,bookprice,bookcolor
其中bookname的属性是cover,属性值是hello字符串。bookname的文本内容是java
bookprice的属性是num,属性值为10。bookprice的文本内容是15
<school>
<student name="zhang">
<grade>university</grade>
<age>18</age>
<gender>男</gender>
</student>
<student name="zhao">
<grade>primary school</grade>
<age>8</age>
<gender>女</gender>
</student>
</school>
结构图如下,根元素是学校school,子元素为两个学生student,这个元素拥有属性name。
每个student有三个子元素grade,age和gender
注意点:
- 所有的xml元素都必须是成对的标签
- xml的标签名对大小写敏感
- xml必须正确的嵌套
< a > 111 < b > 222 < /a > < /b > 像这样写是错误的嵌套方式
xml的头声明
<?xml version="1.0" encoding="utf-8"?>
<root>
<bookname cover="hello">java</bookname>
<bookprice num="10">15</bookprice>
<bookcolor>
<color>blue</color>
<color>green</color>
</bookcolor>
</root>
头声明的两个属性,version是版本号,encoding是编码
头声明在语法上来说不写也不会报错,但一般还是要写上去的
xml的注释
<!--注释内容-->
这里选中某一行代码或者某一段后,按ctrl+/就可以直接转为注释
注释内容会显示
xml的实体引用
在xml的文本内容中直接输入左边的几个字符是非法的,必须转为右边对应的内容
<root>
<test>3 > 2</test>
<test>1 < 4</test>
</root>
XML的空元素
<root>
<test>3 > 2</test>
<test>1 < 4</test>
<empty/>
<empty attribute="no"/>
</root>
空元素的语法格式 <标签名 属性名1 属性名2……/>
CDATA
所有 XML 文档中的文本都会被解析器解析,只有 CDATA 区段中的文本会被解析器忽略。
格式为 <![CDATA[内容]]>
<root>
<test> <![CDATA[3>2;2<4;5>2]]> </test>
</root>
如果不用CDATA的话,里面这么多的<和>都要一个一个手动改为实体引用