`

dom4j简单解析XML例子

 
阅读更多

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

 

分享到:
评论

相关推荐

    java dom4j 解析xml的例子,可用

    1. **DOM4J解析XML**:DOM4J通过创建一个可操作的树形结构来表示XML文档,这棵树称为文档对象模型。解析XML时,DOM4J首先读取XML文件并构建一个节点结构,然后你可以通过API遍历和修改这个结构。例如,你可以通过...

    dom4j 解析xml例子

    在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置...

    Dom4j遍历解析XML

    ### Dom4j遍历解析XML知识点详解 #### 一、Dom4j简介及环境搭建 Dom4j(Document Object Model for Java)是一个Java语言的开源XML API,它提供了非常便捷的方式来解析、创建以及操作XML文档。相较于其他XML解析库...

    Dom4j例子,可以解析大部分的XML

    在TestDom4j项目中,可能包含一个简单的Java程序,演示了如何使用Dom4j解析XML文件、查找特定元素、修改元素内容,并将结果写回XML。这个例子对于初学者来说非常有帮助,因为它展示了Dom4j在实际应用中的基本用法。...

    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...

    使用dom4j和jaxen解析xml

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

    dom4j解析xml例子

    这个“dom4j解析xml例子”压缩包应该包含了一些示例代码、帮助文档和使用说明,旨在帮助初学者快速理解和应用DOM4J。 在XML解析领域,DOM(Document Object Model)是一种将XML文档转换为内存对象树的方法。DOM4J是...

    dom4j 解析xml实例

    在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...

    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是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、创建、修改和解析变得简单易行。在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件...

    dom4j 解析xml文件小例子

    在本例中,我们将深入探讨如何使用DOM4J来解析XML文件。 首先,我们需要理解XML(Extensible Markup Language)的基本概念。XML是一种标记语言,用于存储和传输数据,具有自描述性和结构化的特点,广泛应用于网络...

    Dom4j解析XML(例子)+Dom4j 使用简介

    **Dom4j解析XML(例子)+Dom4j 使用简介** Dom4j是一个强大的Java库,专门用于处理XML文档。它提供了灵活且易于使用的API,使得XML的读取、写入、遍历和修改变得简单。在本文中,我们将深入探讨Dom4j的主要功能和用法...

    dom4j解析xml文件的例子

    在这个例子中,我们将深入理解DOM4J如何解析XML文件,同时也会探讨一些相关工具的使用。 XML(eXtensible Markup Language)是一种结构化数据格式,广泛应用于数据交换、配置文件等领域。DOM(Document Object ...

    Dom4j解析配置文件与xml小例子

    本篇将通过一个实际的例子来探讨如何使用Dom4j解析XML配置文件。 首先,我们需要了解DOM4J的基本概念。DOM(Document Object Model)是一种用于表示XML或HTML文档的标准模型,而Dom4j是基于DOM的,但它比标准的DOM...

    用 dom4j解析xml例子

    本文将深入解析一个使用DOM4J进行XML文件读取的例子,并详细阐述其中涉及的关键知识点。 ### DOM4J概述 DOM4J(Document Object Model for Java)是一个开源的、高性能的XML解析器。它提供了类似于DOM的接口,但比...

    dom4j解析xml,连接oracle数据库

    在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...

    dom4j 工具类 使用例子

    在Java中,DOM4J作为解析XML的工具类,相比标准的Java DOM API,其API更简洁易用,功能更加强大。它可以很好地融入Java项目,尤其在需要频繁进行XML操作时,DOM4J的性能和便利性都得到了广大开发者的好评。 总的来...

    dom4j解析xml.txt

    ### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J(Document Object Model for XML)是一款用于处理XML文档的轻量级Java库。它提供了一种非常简单且灵活的方式来创建、读取、修改和删除XML文档。DOM4J的主要...

    用dom4j解析xml小例子

    一、DOM4J解析XML的基本步骤 1. 导入DOM4J库:首先,你需要在项目中引入DOM4J库。如果这是一个Java项目,你可能已经从压缩包中包含了所需的jar文件,如dom4j-1.6.1.jar。 2. 创建Document对象:解析XML文件的第一...

    DOM解析XML文件例子

    在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...

Global site tag (gtag.js) - Google Analytics