XmlTest.java
import java.io.File; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Namespace; import org.dom4j.Node; import org.dom4j.io.SAXReader; public class XmlTest { public static void main(String[] args) { SAXReader reader = new SAXReader(); reader.setEncoding("UTF-8"); Document doc = null; try { File file = new File("test.xml"); doc = reader.read(file); // doc.accept(new MyVisitor());//访问者模式遍历xml printElement(doc.getRootElement()); } catch (DocumentException e) { e.printStackTrace(); } } public static void printElement(Element element) { String elementPrefix = element.getNamespacePrefix();// 元素前缀 elementPrefix = elementPrefix.equals("") ? "" : elementPrefix + ":"; System.out.print("<" + elementPrefix + element.getName()); for (int i = 0; i < element.nodeCount(); i++) {// 查找命名空间 Node node = element.node(i); if (node.getNodeType() == Node.NAMESPACE_NODE) { Namespace nspace = (Namespace) node; System.out.print(" xmlns:" + nspace.getPrefix() + "=\"" + nspace.getURI() + "\""); } } for (int j = 0; j < element.attributeCount(); j++) {// 查找属性 Attribute attr = element.attribute(j); String attrPrefix = attr.getNamespacePrefix();// 属性前缀 attrPrefix = attrPrefix.equals("") ? "" : attrPrefix + ":"; System.out.print(" " + attrPrefix + attr.getName() + "=\"" + attr.getStringValue() + "\""); } System.out.println(">"); List<Element> childElements = element.elements(); if (childElements.size() == 0) {// 如果元素下面没有子元素,输出此元素文本内容 String text = element.getTextTrim(); if (!text.equals("")) { System.out.println(element.getTextTrim()); } } else { for (Element childElement : childElements) {// 遍历子元素 printElement(childElement); } } System.out.println("</" + elementPrefix + element.getName() + ">"); } }
MyVisitor.java
import org.dom4j.Attribute; import org.dom4j.Element; import org.dom4j.Namespace; import org.dom4j.VisitorSupport; public class MyVisitor extends VisitorSupport {// 访问者模式遍历xml @Override public void visit(Element node) { System.out.println("元素:" + node.getName()); System.out.print((node.elements().size() == 0 ? "文本:" + node.getTextTrim() + "\n" : "")); } @Override public void visit(Attribute node) { String prefix = node.getNamespacePrefix(); prefix = prefix.equals("") ? "" : (prefix + ":"); System.out.println("属性:" + prefix + node.getName() + "=" + node.getText()); } @Override public void visit(Namespace namespace) { System.out.println("命名空间:xmlns:" + namespace.getPrefix() + "=" + namespace.getURI()); } }
相关推荐
1. **DOM4J解析XML**:DOM4J通过创建一个可操作的树形结构来表示XML文档,这棵树称为文档对象模型。解析XML时,DOM4J首先读取XML文件并构建一个节点结构,然后你可以通过API遍历和修改这个结构。例如,你可以通过...
在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置...
### Dom4j遍历解析XML知识点详解 #### 一、Dom4j简介及环境搭建 Dom4j(Document Object Model for Java)是一个Java语言的开源XML API,它提供了非常便捷的方式来解析、创建以及操作XML文档。相较于其他XML解析库...
在TestDom4j项目中,可能包含一个简单的Java程序,演示了如何使用Dom4j解析XML文件、查找特定元素、修改元素内容,并将结果写回XML。这个例子对于初学者来说非常有帮助,因为它展示了Dom4j在实际应用中的基本用法。...
- 以下是一个简单的DOM4J解析XML的例子: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String...
- **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...
这个“dom4j解析xml例子”压缩包应该包含了一些示例代码、帮助文档和使用说明,旨在帮助初学者快速理解和应用DOM4J。 在XML解析领域,DOM(Document Object Model)是一种将XML文档转换为内存对象树的方法。DOM4J是...
在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...
以下是一个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是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、创建、修改和解析变得简单易行。在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件...
在本例中,我们将深入探讨如何使用DOM4J来解析XML文件。 首先,我们需要理解XML(Extensible Markup Language)的基本概念。XML是一种标记语言,用于存储和传输数据,具有自描述性和结构化的特点,广泛应用于网络...
**Dom4j解析XML(例子)+Dom4j 使用简介** Dom4j是一个强大的Java库,专门用于处理XML文档。它提供了灵活且易于使用的API,使得XML的读取、写入、遍历和修改变得简单。在本文中,我们将深入探讨Dom4j的主要功能和用法...
在这个例子中,我们将深入理解DOM4J如何解析XML文件,同时也会探讨一些相关工具的使用。 XML(eXtensible Markup Language)是一种结构化数据格式,广泛应用于数据交换、配置文件等领域。DOM(Document Object ...
本篇将通过一个实际的例子来探讨如何使用Dom4j解析XML配置文件。 首先,我们需要了解DOM4J的基本概念。DOM(Document Object Model)是一种用于表示XML或HTML文档的标准模型,而Dom4j是基于DOM的,但它比标准的DOM...
本文将深入解析一个使用DOM4J进行XML文件读取的例子,并详细阐述其中涉及的关键知识点。 ### DOM4J概述 DOM4J(Document Object Model for Java)是一个开源的、高性能的XML解析器。它提供了类似于DOM的接口,但比...
在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...
在Java中,DOM4J作为解析XML的工具类,相比标准的Java DOM API,其API更简洁易用,功能更加强大。它可以很好地融入Java项目,尤其在需要频繁进行XML操作时,DOM4J的性能和便利性都得到了广大开发者的好评。 总的来...
### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J(Document Object Model for XML)是一款用于处理XML文档的轻量级Java库。它提供了一种非常简单且灵活的方式来创建、读取、修改和删除XML文档。DOM4J的主要...
一、DOM4J解析XML的基本步骤 1. 导入DOM4J库:首先,你需要在项目中引入DOM4J库。如果这是一个Java项目,你可能已经从压缩包中包含了所需的jar文件,如dom4j-1.6.1.jar。 2. 创建Document对象:解析XML文件的第一...
在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...