1. 程式人生 > >XML的解析方式4——DOM4J方式解析

XML的解析方式4——DOM4J方式解析

參考四種生成和解析XML文件的方法詳解

XML的解析方式

DOM解析

SAX解析

DOM4J解析

【優點】

  1. 大量使用了Java集合類,方便Java開發人員,同時提供一些提高效能的替代方法。
  2. 支援XPath。
  3. 有很好的效能。

【缺點】 4. 大量使用了介面,API較為複雜

程式碼示例

  1. XmlDocument介面
package com.vincient.test;

/**
 * @Author: Vincient
 * @Description:
 * @Date: 2018/十月/30
 **/
public interface XmlDocument {
    public void parseXml
(String fileName); }
  1. 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"); } }
  1. 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>
  1. 執行結果
name:Alexia
age:23
sex:Female

name:Edward
age:24
sex:Male

name:wjm
age:23
sex:Female

name:wh
age:24
sex:Male