- 什么是xml?
xml指可扩展标记语言(Extensible Markup Language),是独立于硬件和软件的信息传输工具.
xml应用于Web开发的多种方面,常用于简化数据的共享和存储.
xml对大小写敏感. - Java中xml解析有哪几种方式?
DOM解析方式:
DOM,(Document Object Model即文档对象模型)是W3C组织推荐的处理xml文件的方式.
DOM解析器在解析XML文档时,会把xml文档中的所有元素,按照其出现的层次关系,解析成一个个的Node对象(节点).
优点:在内存中将xml文件中的内容构造成树形结构,可以遍历和修改节点.
缺点:如果文件比较大,内存有压力,解析的时间会比较长.
SAX解析方式:
SAX,(Simple Api For Xml)是一种xml解析的替代方法.
相对于DOM,SAX是一种速度更快,更有效的方式.
SAX逐行扫描文档,一边扫描,一遍解析.而且相对于DOM,SAX可以在解析文档的任意时刻停止解析.
优点:解析可以立即开始,速度快,内存没有压力
缺点:不能对节点做修改.
以下为java中通过SAX解析xml文件的代码.
在使用SAX解析xml文件的时候需要导入dom4j jar包.
123.xml文件代码
<?xml version="1.0" encoding="UTF-8"?>
<list>
<emp id="1">
<name>张三</name>
<age>34</age>
<gender>男</gender>
<salary>3000</salary>
</emp>
<emp id="2">
<name>李四</name>
<age>21</age>
<gender>女</gender>
<salary>4000</salary>
</emp>
<emp id="3">
<name>王五</name>
<age>46</age>
<gender>女</gender>
<salary>6500</salary>
</emp>
<emp id="4">
<name>赵六</name>
<age>28</age>
<gender>男</gender>
<salary>4400</salary>
</emp>
<emp id="5">
<name>钱七</name>
<age>53</age>
<gender>男</gender>
<salary>12000</salary>
</emp>
</list>
java代码
package com.year15.month12;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class SAXDemo {
public static void main(String[] args) {try {
// 创建SAXReader
SAXReader reader = new SAXReader();
// 读取指定文件
Document doc = reader.read(new File("123.xml"));
// 获取根节点list
Element root = doc.getRootElement();
// 获取list下的所有子节点emp
List<Element> elements = root.elements();
//遍历集合取出没个节点的内容信息.
for (Element element : elements) {
System.out.println(element);
String name = element.elementText("name");
int age = Integer.parseInt(element.elementText("age"));
System.out.println(name + age);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}