XML的解析方式4——DOM4J方式解析
阿新 • • 發佈:2018-12-19
參考四種生成和解析XML文件的方法詳解
XML的解析方式
DOM解析
SAX解析
DOM4J解析
【優點】
- 大量使用了Java集合類,方便Java開發人員,同時提供一些提高效能的替代方法。
- 支援XPath。
- 有很好的效能。
【缺點】 4. 大量使用了介面,API較為複雜
程式碼示例
- XmlDocument介面
package com.vincient.test;
/**
* @Author: Vincient
* @Description:
* @Date: 2018/十月/30
**/
public interface XmlDocument {
public void parseXml (String fileName);
}
- Dom4jDemo類
package com.vincient.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.Iterator;
/**
* @Author: Vincient
* @Description:
* @Date: 2018/十一月/02
**/
public class Dom4jDemo implements XmlDocument {
@Override
public void parseXml(String fileName) {
File inputXml = new File(fileName);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(inputXml);
Element users = document. getRootElement();
for (Iterator i = users.elementIterator(); i.hasNext(); ) {
Element user = (Element) i.next();
for (Iterator j = user.elementIterator(); j.hasNext(); ) {
Element node = (Element) j.next();
System.out.println(node.getName() + ":" + node.getText());
}
System.out.println();
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Dom4jDemo dom4jDemo = new Dom4jDemo();
dom4jDemo.parseXml("檔案uri");
}
}
- user.xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="0">
<name>Alexia</name>
<age>23</age>
<sex>Female</sex>
</user>
<user id="1">
<name>Edward</name>
<age>24</age>
<sex>Male</sex>
</user>
<user id="2">
<name>wjm</name>
<age>23</age>
<sex>Female</sex>
</user>
<user id="3">
<name>wh</name>
<age>24</age>
<sex>Male</sex>
</user>
</users>
- 執行結果
name:Alexia
age:23
sex:Female
name:Edward
age:24
sex:Male
name:wjm
age:23
sex:Female
name:wh
age:24
sex:Male