写这篇文章的目的并不是来讲解dom4j的功能,只是对一个简单的xml文件进行了读取操作,希望大家看了以后会有一些作用,不要期望讲解的有多么的细致。
//从文件读取XML,输入文件名,返回XML文档
SAXReader sax = new SAXReader();
File fileIO = new File(filepath);
Document doc = sax.read(fileIO);
//读取根节点
Elemet root = doc.getRootElement();
//读取xml的孩子节点
Element children = root.element("xxxx");
//读取一个节点的属性,这里使用根结点的属性,其他的一样
root.attributeValue("xxxx");
有了这几个基本的方法我们就可以做这个简单的xml文档解析了,哦,忘记了,先说一下xml的结构,如下:
<?xml version="1.0" encoding="UTF-8"?>
<test type="testxml" ver="1.0">
<path>C盘下的一个测试</path>
<name>测试</name>
<params num="4">
<param>测试1</param>
<param>测试2</param>
<param>测试3</param>
<param>测试4</param>
</params>
</test>
解析的代码如下:
- private static final String division = "----------------------------------";
- public static void main(String args[]) throws IOException {
- //String path =
- File directory = new File("");
- String filepath = directory.getCanonicalPath() + "//src//readxml//test.xml";
- ParseXml parse = new ParseXml();
- parse.readXml(filepath);
- }
- private void readXml(String filepath) {
- //从文件读取XML,输入文件名,返回XML文档
- SAXReader sax = new SAXReader();
- File fileIO = new File(filepath);
- Document doc = null;
- try {
- doc = sax.read(fileIO);
- Element root = doc.getRootElement();
- System.out.println("这个xml文件的根结点为:" + root.getName());
- System.out.println(division);
- String type = root.attributeValue("type");
- String ver = root.attributeValue("ver");
- System.out.println("这个xml文件的根结点的属性分别是:" + type + "/t" + ver);
- System.out.println(division);
- String path = root.element("path").getTextTrim();
- System.out.println("这个xml文件的path结点为:" + path);
- System.out.println(division);
- String name = root.element("name").getTextTrim();
- System.out.println("这个xml文件的name结点为:" + name);
- System.out.println(division);
- Element params = root.element("params");
- String num = params.attributeValue("num");
- System.out.println("这个xml文件的params结点中共迭代出了" + num + "个节点,分别是:");
- Iterator it = params.elementIterator("param");
- while(it.hasNext()) {
- String param = ((Element) it.next()).getTextTrim();
- System.out.println(param);
- System.out.println(division);
- }
- } catch (DocumentException e) {
- System.out.println("xml文件解析错误,错误原因为:");
- e.printStackTrace();
- }
- }
至此解析完毕,这个例子很简单,但是应该能够满足普通的应用。
完整的工程文件请在这里下载