package com.px.dom4j;
import java.io.File;
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.ElementHandler;
import org.dom4j.ElementPath;
import org.dom4j.io.SAXReader;
public class ElementHandlerTest implements ElementHandler{
@Override
public void onEnd(ElementPath arg0) {
Element elt=arg0.getCurrent();
Element name=elt.element("name");
Element age=elt.element("age");
String s1=name.getText();
String s2=age.getText();
System.out.print("<"+name.getQualifiedName()+">");
System.out.print(s1);
System.out.println("</"+name.getQualifiedName()+">");
System.out.print("<"+age.getQualifiedName()+">");
System.out.print(s2);
System.out.println("</"+age.getQualifiedName()+">");
}
@Override
public void onStart(ElementPath arg0) {
Element stu=arg0.getCurrent();
List list=stu.attributes();
Iterator<Attribute> it=list.iterator();
while(it.hasNext()){
Attribute att=it.next();
String val1=att.getName();
String val2=att.getText();
System.out.println(val1+"=\""+val2+"\"");
}
}
public static void main(String[] args) {
SAXReader sr=new SAXReader();
try {
sr.addHandler("/students/student", new ElementHandlerTest());
Document doc=sr.read("students.xml");
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
出现的效果:
sn="01"
<name>张三</name>
<age>18</age>
sn="02"
<name>李四</name>
<age>20</age>
分享到:
相关推荐
总结起来,dom4j库提供了DOM和SAX两种XML解析方式,而SAX解析在处理大文件时具有性能优势。通过注册事件处理器,开发者可以在解析过程中动态响应XML结构,实现灵活的数据处理。在实际工作中,选择合适的解析方法取决...
在“testPaseXML”这个项目中,你可以找到这些解析方法的具体实现,包括如何使用DOM创建和解析XML,如何利用DOM4J进行更高效的处理,以及如何运用SAX解析大文件。通过学习和实践这些示例,你可以更好地理解XML处理的...
而DOM4J提供了一种基于事件流的解析方式,即SAX解析器,可以有效地解决这个问题。 **DOM4J解析XML的优势:** 1. **灵活性**:DOM4J提供了丰富的接口和方法,支持XPath查询,可以方便地进行XML结构的操作。 2. **...
DOM4J、SAX和DOM是处理XML文档的三种主要解析器或API,它们各有特点,适用于不同的场景。 1. DOM(Document Object Model) DOM是一种将XML文档转换为内存中的树形结构的模型,它允许开发者通过节点层次结构来访问...
本文将详细介绍生成和解析XML的四种主要方法:DOM、DOM4J、SAX和JDOM。 1. DOM(Document Object Model) DOM是W3C组织推荐的一种解析XML的标准方式。它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。...
总的来说,DOM适合小规模且频繁操作的XML,DOM4J提供了更高级的特性,如XPath查询,而SAX适用于处理大文件,节省内存。在实际应用中,根据项目需求选择合适的解析方式至关重要。通过学习这些实例,你将能更好地理解...
常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和开发效率有很大影响。 1. DOM 解析器 DOM(Document Object Model)是 W3C 官方标准,用于表示...
以上四种方式各有优缺点,DOM适合小文件并要求快速访问任何部分,SAX适合大文件但需要实时处理,DOM4J和JDOM提供了更友好的API但可能消耗更多资源。在实际开发中,应根据项目需求选择合适的方法。在提供的"testxml...
【dom4j基础入门文档(SAX,DOM,XPATH)】 dom4j是一个流行的Java库,专门用于处理XML文档。相较于W3C DOM API,dom4j的优势在于它内置了本地XPath支持,使得XML文档的查询和操作更为简便。本文将深入介绍dom4j的...
在Java中,解析XML文件是常见的任务,通常有四种主要的方法:DOM (Document Object Model),JDOM,DOM4J以及SAX (Simple API for XML)。以下是对这四种XML解析方式的详细介绍: 1. DOM解析: DOM是一种树形结构的...
DOM4J是Java的一个开源库,它是基于DOM的,但是提供了更高级别的API和一些额外的功能,如XPath支持和XML Schema处理。DOM4J简化了DOM的使用,使得开发者能更轻松地处理XML。与标准DOM相比,DOM4J在性能和灵活性上...
4. **事件处理**:DOM4J支持SAX事件处理,可以在解析过程中对XML事件进行响应,如开始元素、结束元素等。 5. **转换和序列化**:DOM4J可以将XML文档转换为其他格式,如HTML、DOM或流,也可以将Java对象序列化为XML...
本篇文章将探讨四种处理XML的Java库:DOM、JDOM、SAX和DOM4J,分析它们的原理、性能特点以及适用场景。 首先,我们来了解DOM(Document Object Model)。DOM是W3C组织定义的一种API,它将XML文档解析为一个树形结构...
本文将详细介绍四种主流的Java XML处理库:DOM4J、DOM、JDOM和SAX,并通过简单的代码示例帮助初学者入门。 1. DOM (Document Object Model) DOM是W3C制定的一种标准,它将XML文档视为一个树形结构,允许开发者通过...
首先,DOM4J是一个基于Java的XML处理库,它支持多种XML处理模型,如SAX和DOM。DOM4J的核心特性包括XML文档的构建、解析、查询和修改。它还提供了XPath支持,允许开发者通过简洁的表达式来定位XML文档中的元素。 DOM...
它支持SAX和DOM解析器,同时提供了基于事件的解析模型和基于树的解析模型。此版本的主要特性包括: 1. 支持XPath:DOM4J提供了一种强大的方式来查询XML文档,通过XPath表达式可以轻松地找到需要的数据。 2. 文档...
3. **事件驱动模型**:除了DOM和SAX,DOM4J还支持基于事件的处理模型,适用于处理大型XML文档,可以避免一次性加载整个文档导致的内存消耗。 4. **XPath和XSLT转换**:DOM4J不仅能够执行XPath查询,还可以结合JAXP...
它不仅支持W3C的DOM API,还提供了基于事件的SAX和直接的DOM接口。 2. **核心概念**:主要包括Document(文档对象)、Element(元素)、Attribute(属性)、Text(文本)、Namespace(命名空间)等,这些构成了XML...
本教程将详细介绍四种主要的XML解析方式:DOM、DOM4j、JDOM和SAX,以及如何在Java中处理XML文件的相对路径。 1. DOM(Document Object Model) DOM是W3C推荐的一种解析XML的标准,它将XML文档转化为一个树形结构,...
4. **事件驱动模型**:与SAX解析器配合,DOM4J提供了一个基于事件的处理模型,可以在解析过程中对特定事件作出反应,如元素开始、结束等。 5. **转换和序列化**:DOM4J可以将XML文档转换为其他格式,如HTML或者DOM,...