第十章:XML
一,XML简介
XML : XML(EXtensible Markup Language)可扩展标记语言
xml的主要作用有:
1、用来保存数据,而且这些数据具有自我描述性
2、它还可以作为项目或者模块的配置文件(javaweb的web.xml)
3、还可以用来做网络传输数据的格式(现在用不多了,都是JSON为主)
特点:
XML与操作系统、编程语言的开发平台无关
实现不同系统之间的数据交换
作用:
- 数据交互
- 配置应用程序和网站
- Ajax基石
XML文档结构
注意: XML声明是可选的,因此你的xml没有它就可以很好地形成。但建议使用它,以便解析器不会做出错误的假设,特别是关于所使用的编码。
XML标签
XML文档内容由一系列标签元素组成。
语法:
<元素名 属性名=“属性值”>元素内容</元素名>
示例:
NoKris 或者
注意:
- 属性值用双引号包裹
- 一个元素可以有多个属性
- 属性值中不能直接包含<、“、&
- 不建议使用的字符:‘、>
要使用特殊字符时可以用转义字符:&(&),<(<),>(>) 等;
XML属性
xml属性和html一样,都要有属性名=“属性值”,并且都要在标签内部。这就不再过多的讲解。
XML编写注意事项
- XML 文档必须有切仅有一个根元素。
- 所有XML元素都必须有结束标签
- XML标签对大小写敏感
- XML必须正确的嵌套
- 同级标签以缩进对齐
- 元素名称可以包含字母、数字或其他的字符
- 元素名称不能以数字或者标点符号开始
- 元素名称中不能含空格
!!!错误示例:<title><name>XML编程</title></name>
!!!错误原因:XML标签嵌套错误。
二,XML解析器
上面我们提到了,xml是可以跨平台,无视操作系统交换数据的,那么我们java在拿到其他平台的xml文件,该如何解析呢?
解析器类型:
非验证解析器
检查文档格式是否良好
验证解析器
使用DTD检查文档的有效性
DTD(Document Type Definition),文档类型定义,用来约束XML文档。例如要求xml文档的根元素必须是什么,在元素下可以包含多少个元素,每个元素必须有一个什么属性,而且还可以定义有多少个子元素,分别为...,子元素的内容必须为文本内容等
解析XML技术
- DOM
基于XML文档树结构的解析
适用于多次访问的XML文档
特点:比较消耗资源- SAX
基于事件的解析
适用于大数据量的XML文档
特点:占用资源少,内存消耗小- DOM4J
非常优秀的Java XML API
性能优异、功能强大
开放源代码
我们今天重点讲的是DOM4j。
三,DOM4j
我们用DOM4j解析XML代码不过是对XML的CRUD(增删改查),想用DOM4j,我们需要导入dom4j的jar包,jar包可以自己搜着下载,我们只用maven导入,简单快捷。
maven:
<dependencies> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.1</version> </dependency> </dependencies>
增:
直接上代码,再分析怎么使用。
public static void main(String[] args) throws IOException {
Document document = DocumentHelper.createDocument();
Element e1 = document.addElement("aaa");