`

使用 DOM4J 解析一个 XML 文档(二)

XML 
阅读更多
<?xml version="1.0" encoding="UTF-8"?>

<student name="zhangsan">
    <hello age="20">hello</hello>
    <world>world</world>
</student>



package com.syh.xml.dom4j;

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

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

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

/**
 * 用 Dom4j 解析(读取)一个 XML 文档
 * @author Administrator
 *
 */

public class Dom4jTest2 {

	public static void main(String[] args) throws Exception {
		
		//构造出 Dom4j 的解析器
		SAXReader reader = new SAXReader() ;
		
		// 将文档加载到内存当中 ,并拿到了这个 XML 文档的根节点
		Document doc = reader.read(new File("students2.xml")) ;
		
		//获得 XML 文档根元素节点
		Element rootEle = doc.getRootElement() ;
		System.out.println("root element: " + rootEle.getName());
		
		//注意:这里获取的是子元素,虽然说空白也是一个"孩子",但是它不是子元素,而是文本
		List<Element> childrenEle = rootEle.elements() ;
		System.out.println(childrenEle.size());
		
		//返回所有以 hello 为元素名的子元素
		List<Element> childrenEle2 = rootEle.elements("hello") ;
		System.out.println(childrenEle2.size());
		
		//返回给定标签(如:hello)名的第一个元素 
		Element first = rootEle.element("hello") ;
		System.out.println(first.attributeValue("age"));
		
		
		for(Iterator<Element> iter = rootEle.elementIterator() ; iter.hasNext() ;) {
			Element ele = iter.next() ;
			System.out.println(ele.attributeValue("age"));
		}
		
		System.out.println("-------------------------------------------");
		
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance() ;
		DocumentBuilder db = dbf.newDocumentBuilder() ;
		org.w3c.dom.Document document = db.parse(new File("students2.xml")) ;
		
		DOMReader dReader = new DOMReader() ;
		
		//将JAXP 的 Document 转换为 dom4j 的 Document 
		Document d = dReader.read(document) ;
		
		Element rootEle2 = d.getRootElement() ;
		
		System.out.println(rootEle2.getName());
		
	}
	
}



下面是在控制台上打印的效果:


root element: student
2
1
20
20
null
-------------------------------------------
student

分享到:
评论

相关推荐

    dom4j解析xml详解

    ### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...

    使用dom4j和jaxen解析xml

    - **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...

    Java使用sax、dom、dom4j解析xml文档

    以下是一个DOM4J解析XML的简单示例: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String[] args) {...

    Dom4j解析和生成XML文档

    DOM4J解析XML文档: DOM4J通过构建DOM树(Document Object Model)来解析XML。DOM模型是一种将XML文档转换为内存中对象树的表示方式。在DOM4J中,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`来创建`...

    dom4j---xml解析jar包

    在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行的、功能强大的开放源代码库。这个库不仅简化了XML处理,还提供了XPath和XSLT的支持,使其成为Java开发者处理XML的首选工具之一。 **...

    dom4j解析xml文件的压缩包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、查询和修改变得简单。这个压缩包包含了DOM4J的完整版本,适用于那些希望在Java项目中使用DOM4J进行XML操作的开发者...

    分别使用DOM和DOM4j解析XML文件

    使用DOM解析XML的基本步骤如下: 1. 创建DocumentBuilderFactory实例。 2. 使用DocumentBuilderFactory创建DocumentBuilder实例。 3. 使用DocumentBuilder的parse()方法解析XML文件,得到Document对象。 4. 通过...

    dom4j 解析(读取) xml 节点数据

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的方式来解析、创建、修改和操作XML数据。在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你...

    xmldom4j解析

    在“jar包执行20190331.rar”文件中,可能包含了一个Java项目,该项目使用DOM4J库解析XML文件并执行相关业务逻辑。执行此类项目通常涉及以下步骤: 1. 将jar包解压,找到主类(包含main方法)。 2. 使用Java命令行...

    dom4j-jar与dom4j解析xml文档介绍

    "dom4j-jar与dom4j解析xml文档介绍" 这个标题告诉我们,我们将探讨的是一个关于dom4j库的jar文件,以及如何使用这个库来解析XML文档。dom4j是一个Java库,它提供了丰富的API用于处理XML、HTML和DOM文档。这里的"jar...

    dom4j 解析写入xml

    1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件

    使用Dom4j解析复杂的XML文件

    使用Dom4j解析XML文件,首先需要创建一个`SAXReader`对象,然后调用其`read()`方法读取XML文件。例如: ```java SAXReader reader = new SAXReader(); Document document = reader.read(new File("path_to_xml_...

    dom4j解析XML文档.ppt

    DOM4J是一个强大的Java库,专门用于解析XML文档。它提供了简单易用的API,使得开发者可以更加方便地处理XML数据。DOM4J的核心优势在于它的面向接口编程设计,这使得它能够在不同的解析机制间灵活切换,如DOM、SAX和...

    使用dom4j解析XML

    【使用dom4j解析XML】 dom4j是一个强大的开源XML框架,它提供了处理XML文档的各种功能,包括解析、创建、修改等。相比W3C DOM API,dom4j的优势在于其内置的XPath支持,允许更方便地定位和操作XML文档中的节点。 *...

    dom4j解析XML所需jar包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。DOM4J的名字来源于DOM(Document Object Model)和Java的结合,但它的设计理念比标准DOM更先进...

    dom4j解析xml

    以下是一个简单的DOM4J代码示例,展示如何使用DOM4J删除XML文档中的一个节点: ```java import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....

    DOM4J 解析XML

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与流行的Java框架(如...

    java dom4j解析xml

    - 以下是一个简单的DOM4J解析XML的例子: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String...

Global site tag (gtag.js) - Google Analytics