(一)dom4j解析(利用迭代器从根节点遍历)

1、XML文档students.xml

<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student>
        <name>吴飞</name>
        <college>java学院</college>
        <telephone>62354666</telephone>
        <notes>男,1982年生,硕士,现就读于北京邮电大学</notes>
    </student>
    <student>
        <name>李雪</name>
        <college>C++学院</college>
        <telephone>62358888</telephone>
        <notes>男,1987年生,硕士,现就读于中国农业大学</notes>
    </student>
    <student>
        <name>Jack</name>
        <college>PHP学院</college>
        <telephone>66666666</telephone>
        <notes>我是澳洲人</notes>
    </student>
    <student>
        <name>Lucy</name>
        <college>Android学院</college>
        <telephone>88888888</telephone>
        <notes>我是美国人</notes>
    </student>
</students>
package com.zda.xml;

import java.util.Iterator;

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

public class Dom4jTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            //1、创建解析器
            SAXReader reader = new SAXReader();
            //2、通过解析器的read方法将配置文件读取到内存中,生成一个Document[org.dom4j]对象树
            Document document = reader.read("conf/students.xml");
            //3、获取根节点
            Element root = document.getRootElement();
            //4、开始遍历根节点
            for(Iterator<Element> rootIter = root.elementIterator();rootIter.hasNext();){
                Element studentElt = rootIter.next();
                for(Iterator<Element> innerIter = studentElt.elementIterator();innerIter.hasNext();){
                    Element innerElt = innerIter.next();
                    String innerValue = innerElt.getStringValue();
                    System.out.println(innerValue);
                }
                System.out.println("-------------------------------");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

原文地址:https://www.cnblogs.com/zhaideang/p/12309644.html

时间: 2024-10-02 20:46:17

(一)dom4j解析(利用迭代器从根节点遍历)的相关文章

应用DOM4J解析节点信息

package com; import java.io.File; import java.util.BitSet; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXR

利用JAXP和DOM4J解析XML

前言 原创文章欢迎转载,请保留出处. 若有任何疑问建议,欢迎回复. 邮箱:[email protected] 解析XML主要有两种思想,一种是SAX(Simple API for XML),另一种是DOM(文档对象模型),其中在J2EE中,提供了JAXP来实现这两种解析,本文主要利用JAXP实现SAX解析,同时介绍时下流行的DOM4J实现DOM解析. SAX解析和DOM解析比较 SAX解析 优点:效率高,当遇到大的XML文件时,不需要扫描完文件就可以操作. 缺点:不能进行RUD操作,每次操作都要

java中利用dom4j解析XML文件

官网下载Dom4j地址:https://dom4j.github.io/ 注意:使用Dom4j开发,需下载dom4j相应的jar文件 题目:后台利用dom4j解析student.xml文件,并返回List<Student>集合 需要解析的XML: <?xml version="1.0" encoding="UTF-8"?> <classes> <class name="ST01"> <stud

使用Dom4j解析包含有DB连接信息的XML文件以及节点属性的获取

包含DB连接信息的XML文件 1 <!--示例1——三级显示--> 2 <db-connections> 3 <connection> 4 <name>DBTest</name> 5 <jndi></jndi> 6 <url> 7 <![CDATA[jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=UTF8]

dom4j递归解析XML字符串所有子节点

1 /** 2 * dom4j递归解析所有子节点 3 * 4 * @param childElements 5 * @param mapEle 6 * @return 7 */ 8 public Map<String, Object> getElementsToString(String print) { 9 //解析返回的xml字符串,生成document对象 10 Document document = null; 11 Map<String,Object> mapEle =

在java项目中怎样利用Dom4j解析XML文件获取数据

在曾经的学习.net时常常会遇到利用配置文件来解决项目中一些须要常常变换的数据.比方数据库的连接字符串儿等.这个时候在读取配置文件的时候.我们一般会用到一个雷configuration,通过这个类来进行直接读取,能够说这是程序中直接封装好的,包含配置文件里书写的格式等等.那么,假设.想要在配置文件里写一些其它的数据,直接以XML文件的格式进行书写.这个时候在后台怎样读取XML文件里的数据呢?这里利用Dom4j来解析XML文件里连接oracle数据库的xml数据. 在使用之前,首先要在自己的项目中

在java项目中如何利用Dom4j解析XML文件获取数据

在以前的学习.net时经常会遇到利用配置文件来解决项目中一些需要经常变换的数据,比如数据库的连接字符串儿等.这个时候在读取配置文件的时候,我们通常会用到一个雷configuration,通过这个类来进行直接读取,可以说这是程序中直接封装好的,包括配置文件中书写的格式等等.那么,如果,想要在配置文件中写一些其他的数据,直接以XML文件的格式进行书写,这个时候在后台如何读取XML文件中的数据呢?这里利用Dom4j来解析XML文件中连接oracle数据库的xml数据. 在使用之前,首先要在自己的项目中

解析某些特殊格式XML文件时,获取不到根节点问题

还是在语音识别这块.在读取本地的SRGS的XML后,无法获取到根节点<grammar>. 下面是SRGS.XML文件(只给出了根节点) <?xml version="1.0" encoding="utf-8" ?> < grammar version="1.0" xml:lang="zh-cn" root="mediaMenu" tag-format="semanti

dom4j解析xml字符串实例

与利用DOM.SAX.JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异.功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml.dom4j是一套开源的api.实际项目中,往往选择dom4j来作为解析xml的利器. 先来看看dom4j中对应XML的DOM树建立的继承关系 针对于XML标准定义,对应于图2-1列出的内容,dom4j提供了以下实现: 同时,dom4j的NodeType枚举实现了XML规范中定义的node类型.如此可以在遍历x