java XML 文件
1. XML的概念
可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己标记语言进行定义的源语言。XML的简单易于在任何应用程序中读/写数据,这使XML成为数据交互的唯一共同语言。
2. 基本语法
2.1 基本语法格式
- XML文件名后缀是.xml
- XML第一行是对当前文件的定义声明
- XML文件中有且只有一个根标签
- 属性值必须使用引号包含
- 标签必须正确匹配,正确开始和关闭
- XML标签内严格区分大小写
<?xml version="1.0" encoding="utf-8">
<users>
<user id="1">
<name>小明</name>
<age>16</age>
<gender>male</gender>
</user>
<user id="1">
<name>小明</name>
<age>16</age>
<gender>male</gender>
</user>
</user>
2.2 XML文件组成
- 文档声明: <?xml 属性列表 ?> <?xml version = "1.0" encoding = "utf - 8" ?> version : 当前xml文件版本号
encoding : 编码方式 - 标签内容自定义:
a. 自定义标签允许使用英文字母,数字和其他标点符号。
b. 不允许使用数组和标点符号开头,只能用英文字母。
c. 不允许在自定义标签内使用xml标记,XML也不行
d. 名字不允许出现空格 - 属性
可以给标签一个属性,有时候要求ID属性是唯一的
3. XML解析
3.1 XML解析思路
3.1.1 DOM解析
Document Object Model 文件对象模型
把XML整个文件看做一个Document对象,每一个节点看做一个Element,节点中有Attribute,或者当前节点中存在Text文本内容。
DOM是将整个XML文件读取到计算机内存中,可以进行CRUD操作。
缺点:占用了大量的内存
适用环境:服务器对于XML文件的解析过程。
3.1.2 SAX解析
逐行读取,给予一定的事件操作。
读取一行内容,释放上一行内容,可以有效的节约内存空间
缺点:
不能对XML文件,进行增删改
适用的环境:
手机读取解析XML文件时采用的方式
3.2 XML文件解析工具
- JAXP: SUN提供的一个基本的解析器,支持DOM和SAX两种解析方式,但是操作很繁琐,不便于程序员开发。
- Dom4j::DOM For Java 一款非常优秀的解析器。
- Jsoup :基于Java完成的对于HTML解析的工具,因为HTML和XML文件都是标记语言。
- PULL:Android手机上集成的XML解析工具,SAX方式解析
Dom4j
涉及方法
- SAXReader();
解析XML文件使用的核心类
read() --> XML文件Document对象 - Document对象中可以使用方法
Element getRootElement(); 获取当前XML文件的根节点对象 - Element对象中可以使用方法
List elements();
当前节点下的所有子节点
List elements(String name);
当前节点下所有指定名字的子节点
Attribute attribute(String name);
根据属性名获取对应的属性对象Attribute
Attribute节点中可以使用String getValue()来获取对应的节点数据
String getName();
获取当前节点的名字
String getText();
获取当前节点对应的文本数据
// 当前XML文件的Document对象
Document document = new SAXReader().read(new File("./xml/User.xml"));
// 获取根节点 Root Element
Element rootElement = document.getRootElement();
// 获取Root Element下子节点
List<Element> elements = rootElement.elements();
Element teacher = rootElement.element("teacher");
// 获取属性节点指定属性值
System.out.println(teacher.attribute("id").getValue());