介绍和用途
语法规则
语义约束
Java解析xml
xml名称:Extensible Markup Language 可扩展标记语言
编写xml就是编写标签 与html非常类似 .xml
良好的人机可读性
例子; hr.xml
张三
31
178
</ employee >
xml和html比较
两者比较相似,都是编写标签
xml没有预定义标签,html存在大量的预定义标签
xml重在保存和传输数据,html重在显示信息
html
首页xml用途:
Java程序的配置描述文件
用于保存程序产生的数据
</ employee >
3、网络之间的传输 xml是标准的数据传输的格式
xml文档结构
第一行必须是xml声明
有且只有一个根节点
xml书写的规则和html相同
开发第一个xml界面。
xml标签的书写规则
合法标签名
适当的注释和缩进
合理使用属性
特殊字符和CDATA标签
有序的子元素
合法的标签名
标签名要有意义
建议使用英文、小写字母、单词之间 - 进行分隔
建议使用多级标签之间不要存在同名情况。
X
<考试&></考试&> X
X
相册</ shop-cart > 对的
解决方案1:使用实体引用
xml支持的5中实体引用:
< <
> >
& &
' ‘
" “
解决方案2:使用CDATA标签
CDATA标签指的是不应由xml解析器进行解析的文本
从<![CDATA[“…….”]]>
xml语义约束
xml语义约束有2种定义方式:DTD和XML Schema
DTD
Document Type Definition
扩展名:.dtd
利用DTD中的<!ELEMENT>标签,定义xml标签中允许出现的节点及数量,hr.xml
1、<!ELEMENT hr (employee)> 定义hr标签节点下只能出现1个employee节点
2、<!ELEMENT employee (name,age,salary,department)>
文档中可以允许哪些节点出现
3、<!ELEMENT name (#PCDATA)>
定义name标签体只能是纯文本
#PCDATA:纯文本元素
DTD定义节点数量
1、<!ELEMENT hr (employee+)> hr节点下最少出现一个employee子节点
2、<!ELEMENT hr (employee*)> hr节点下可以出现0 。。。。n个 ,可能不出现,也可能出现1万个
3、<!ELEMENT hr (employee?)> 最多出现一个,要么不出现
xml中引用DTD文件
举例子:
XML Schema
XML Schema 比DTD更为复杂,提供更多的功能
XML Schema 提供了数据类型、格式限定、数据范围等属性
是W3C的标准
后缀是.xsd
schema使用比较多,为了后期我们框架部分获取schema的支持
DOM模型
Document object model 文档对象模型
DOM把xml文档作为树进行解析的
Dom4j
是易用的开源的库,用于解析xml文件的
应用于Java平台,性能优异 功能强大
Dom4j将xml视为Document对象
xml标签被dom4j定义为element对象
https://dom4j.git hub.io/
使用Dom4j对xml文件进行更新操作