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

 更新时间:2014年01月05日 09:53:10   作者:  
DOM4J具有性能优异、功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml,dom4j是一套开源的api。实际项目中,往往选择dom4j来作为解析xml的利器

复制代码 代码如下:

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();
        }

    }
}

相关文章

  • springboot如何使用@ConfigurationProperties封装配置文件

    springboot如何使用@ConfigurationProperties封装配置文件

    springboot如何使用@ConfigurationProperties封装配置文件的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • java管道piped输入流与输出流应用场景案例分析

    java管道piped输入流与输出流应用场景案例分析

    这篇文章主要介绍了java管道流PipedInputStream与PipedOutputStream(输入流与输出流)的应用场景案例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02
  • 面试题:Java中如何停止线程的方法

    面试题:Java中如何停止线程的方法

    这篇文章主要介绍了Java中如何停止线程的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java 使用 Graphql 搭建查询服务详解

    Java 使用 Graphql 搭建查询服务详解

    这篇文章主要介绍了Java 使用 Graphql 搭建查询服务详解的相关资料,需要的朋友可以参考下
    2016-12-12
  • 关于BindingResult的使用总结及注意事项

    关于BindingResult的使用总结及注意事项

    这篇文章主要介绍了关于BindingResult的使用总结及注意事项,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java获取电脑真实IP地址的示例代码

    Java获取电脑真实IP地址的示例代码

    这篇文章主要介绍了Java如何获取电脑真实IP地址,忽略虚拟机等IP地址的干扰,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-09-09
  • MybatisPlus自定义Sql实现多表查询的示例

    MybatisPlus自定义Sql实现多表查询的示例

    这篇文章主要介绍了MybatisPlus自定义Sql实现多表查询的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • JAVA异常分类和处理解析

    JAVA异常分类和处理解析

    这篇文章主要介绍了JAVA异常分类和处理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 浅谈静态变量、成员变量、局部变量三者的区别

    浅谈静态变量、成员变量、局部变量三者的区别

    下面小编就为大家带来一篇浅谈静态变量、成员变量、局部变量三者的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 关于mybatisPlus yml配置方式

    关于mybatisPlus yml配置方式

    这篇文章主要介绍了mybatisPlus yml配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论