解析xml有两种方式
1.通过DOM和SAX解析xml
这两种方法是jdk官方提供的由于过于老旧,只需要知道有这么个方法即可。
2.还可以通过第三方提供的技术来解析
jdom在dom基础上进行了封装
dom4j又对jdom进行了封装
pull主要用在android手机开发,和SAX非常类似都是事件机制解析XML文件
3.大概步骤
首先需要在编译器里面创建一个新的folder,然后导入需要的dom4j的jar包,然后build path
接下来就可以编写相关代码了
首先我们需要一个sorce folder然后在里面编写xml文件
以下是文件结构图(主要看student.xml)
以下是XML代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE STUDENTS[
<!ENTITY test "this is a test">
]>
<STUDENTS>
<student id = "1001">
<name>牵着蜗牛去兜风</name>
<age>23</age>
</student>
<student id = "1002">
<name>石原里美/name>
<age>28</age>
</student>
<student id = "1003">
<name>斋藤飞鸟</name>
<age>26</age>
</student>
</STUDENTS>
以下是JAVA代码
public class DOM4JTest{
public static void main(String [] args){
//1.首先我们需要创建一个读取xml文件的对象
SAXReader reader = new SAXReader();
//2.读取xml并获取Document对象
try{
Document document =
//可以直接通过读file的形式读取xml文件
//reader.read("config/student.xml")
//也可以通过流的方式读取xml文件,这次我们通过流的方式
reader.read(DOM4JTest.class.getClassLoader().getResourceAsStream("student.xml"));
//3.获取根节点
Element root = document.getRootElement();
//4.获取子节点
//student字符串的作用是dom4j会自动识别是否为Student节点,这样就不会解析空白节点
List<Element> studentLIst = root.elements("student");
//5.遍历list
for(Element student :studentList){
//6.输出student结点中的id属性
System.out.println("id : " + student.attributeValue("id"));
//7.输出student结点中的name结点和age结点
Element name = student.element("name");
System.out.println("name : " + student.getText());
Element age = student.element("age");
System.out.println("age : " + student.getText());
}
//既然我们已经可以获取xml里面的属性了,可以通过id name gae 这三个属性创建一个对象
//然后将这些对象存到一个list里面 再存入数据库即可
//当然这些事情tomcat都已经帮我们解决了
}catch(DocunmentException e){
e.printStackTrace();
}
}
}