dom4j是一款开放源码的用于解析xml的java api,这里给大家提供一个免费的dom4j 1.6.1的地址 :http://download.csdn.net/download/u010426133/7763815
下面给大家介绍一下xml的具体用法:
1.读取解析xml文档//读取一个xml文档并返回一个document用于操作
public Document getDocument(String fileName) {
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(new File(fileName));
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
}
//读取一个xml文档并返回一个document用于操作
public Document getDocument(String fileName) {
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(new File(fileName));
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
}
2.读取根节点Element root = document.getRootElement(); //获取根节点
3.向一个节点中插入元素或属性;Element root = document.getRootElement();// 取根节点
Element student = root.addElement("student"); // 添加一个studnet元素
student.addAttribute("id", "1000"); //在student元素中添加一个id属性
student.addElement("name").addText("张三"); //在student元素中添加一个子元素并赋值;
student.addElement("sex").addText("男");
student.addElement("birthday").addText("1993-07-15");
4.用xpath查找xml中指定的节点,如:List<Element> list = document.selectNodes("//student");
这是查找xml文档中含有student的所有节点,下面我也给大家介绍一下xpath的常用语法,一些不常用的语法我不做介绍:
Element root = document.getRootElement(); //获取根节点
Element root = document.getRootElement();// 取根节点
Element student = root.addElement("student"); // 添加一个studnet元素
student.addAttribute("id", "1000"); //在student元素中添加一个id属性
student.addElement("name").addText("张三"); //在student元素中添加一个子元素并赋值;
student.addElement("sex").addText("男");
student.addElement("birthday").addText("1993-07-15");
List<Element> list = document.selectNodes("//student");
- //students/student表示搜索students元素下的所有student元素
- //student表示搜索xml文档中所有student元素
- //student/* 表示xml文档中student的所有子元素
- /students/student[1] 表示students元素下的第一个student元素
- /students/student[age] 表示students元素下含有age子元素的所有studnet
-
/students/student[age=20] 在上面的基础上加了一个限制条件age=20;
-
//student[@id]表示含有属性id的所有studnet元素
以上这些语法在xml解析中基本上够用了,如果想深入了解xpath的用法,可以到xpath学习: http://www.w3school.com.cn/xpath/index.asp
5.将document写入xml
public static boolean saveToXml(Document document,String fileName){
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
try {
XMLWriter writer = new XMLWriter(new FileOutputStream(fileName),format);
writer.write(document);
writer.close();
} catch (UnsupportedEncodingException | FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
以上这么多足以写一个用xml存储数据的小型管理系统,我这里给大家实现了一个学生信息的管理系统,具体的前台没有帮大家写,只写了entity层、dao层、业务逻辑层。
代码我已经上传到网上,大家可以下载查看:http://git.oschina.net/chengxianhu/mycode