java解析xml之dom4j解析xml示例分享

时间:2022-04-25 15:36:37

代码如下:


package com.test;

 

import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4jXML {

    public static void main(String[] args) {
        SAXReader saxReader = new SAXReader();
        File file = new File("e:/People.xml");

        try {
            Document document = saxReader.read(file);
            Element root = document.getRootElement();
            List<People> peoples = new ArrayList<People>(); 
            for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
                People people = new People();
                Element peopleElement = (Element) iterator.next();
                people.setId(peopleElement.attribute("id").getValue());
                for (Iterator childIterator = peopleElement.elementIterator(); childIterator.hasNext();) {
                    Element childPeopleElement = (Element) childIterator.next();
                    if (childPeopleElement.getName().equals("Name")) {
                        people.setEnglishName(childPeopleElement.attribute("en").getValue());
                        people.setName(childPeopleElement.getText());
                    } else if (childPeopleElement.getName().equals("Age")) {
                        people.setAge(childPeopleElement.getText());
                    }
                }
                peoples.add(people);
            }

            for (People p : peoples) {  
                System.out.println(p.getId()+"\t"+p.getName()+"\t"+p.getEnglishName()+"\t"+p.getAge());  
            } 

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}