import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.junit.Before; import org.junit.Test; public class TestDom4j { private String requestXML = null; @Before public void before() throws IOException{ /** * 将文件中 转换为 字符串 */ File file = new File("D:\\xmls\\request.xml"); FileReader reader = new FileReader(file);//字符流 //缓冲字符流 BufferedReader bufferedReader = new BufferedReader(reader); String line = ""; StringBuffer str = new StringBuffer(); while((line = bufferedReader.readLine()) != null){ str.append(line); } requestXML = str.toString(); // requestXML = "<?xml version=\"1.0\" encoding=\"GBK\"?>"+ // "<request version=\"1.0\">"+ // "<system>"+ // "<sysid>ESS</sysid>"+ // "<uid>ESS0025</uid>"+ // "<servicename>AEGON_WS_ESS_USER_LOGIN</servicename>"+ // "</system>"+ // "<queryinfo>"+ // "<filed name=\"STATUS\">1</filed>"+ // "<filed name=\"ERRORMASSAGE\"/>"+ // "<filed name=\"RESULTTYPE\"/>"+ // "<filed name=\"PATH\"/>"+ // "<filed name=\"RESULTCOUNT\">0</filed>"+ // "<filed name=\"TIME\">2014-05-06 14:52:34</filed>"+ // "</queryinfo>"+ // "<query>"+ // "<filed name=\"name\" type=\"String\">李俊华</filed>"+ // "<filed name=\"sNumber\" type=\"String\">888888888</filed>"+ // "<filed name=\"password\" type=\"String\">gaoweigang</filed>"+ // "</query>"+ // "</request>"; } /** * 将xml封装到Map中 * @throws DocumentException */ @Test public void testParseXmlToMap() throws DocumentException{ //定义封装XML中query信息的map Map<String, String> map = new HashMap<String, String>(); Document document = DocumentHelper.parseText(requestXML); //获取root元素 Element rootElement = document.getRootElement(); System.out.println(rootElement.getName());//获取根元素的名字:request //遍历rootElement元素的直接子元素(注意:不会遍历间接子元素) for(Iterator i = rootElement.elementIterator(); i.hasNext();){ //获取根元素直接子元素directChildElement Element directChildElement = (Element)i.next(); //遍历directChildElement元素的直接子元素 if("query".equals(directChildElement.getName())) for(Iterator j = directChildElement.elementIterator(); j.hasNext();){ Element element = (Element)j.next(); if("filed".equals(element.getName())){ String key = element.attributeValue("name"); System.out.println(key);//name, sNumber, password String value = element.getText(); System.out.println(value);//李俊华, 88888888, gaoweigang map.put(key, value);//把数据封装到Map中 } } } } @Test public void testXMLToMap() throws IOException, DocumentException{ Map<String,String> map = new HashMap<String, String>(); File file = new File("D:\\xmls\\request.xml"); SAXReader reader = new SAXReader(); Document document = reader.read(file); //获取根元素 Element rootElement = document.getRootElement(); //遍历根元素的直接子元素 for(Iterator i = rootElement.elementIterator(); i.hasNext();){ Element directChildElement = (Element)i.next(); if("query".equals(directChildElement.getName())){ for(Iterator j = directChildElement.elementIterator(); j.hasNext();){ Element element = (Element)j.next(); if("filed".equals(element.getName())){ String key = element.attributeValue("name"); System.out.println(key); String value = element.getText(); System.out.println(value); map.put(key, value);//将数据封装到Map } } } } } }
相关推荐
- 以下是一个简单的DOM4J解析XML的例子: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String...
1. **DOM4J解析XML**:DOM4J通过创建一个可操作的树形结构来表示XML文档,这棵树称为文档对象模型。解析XML时,DOM4J首先读取XML文件并构建一个节点结构,然后你可以通过API遍历和修改这个结构。例如,你可以通过...
在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...
在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置...
**Dom4j解析XML(例子)+Dom4j 使用简介** Dom4j是一个强大的Java库,专门用于处理XML文档。它提供了灵活且易于使用的API,使得XML的读取、写入、遍历和修改变得简单。在本文中,我们将深入探讨Dom4j的主要功能和用法...
在TestDom4j项目中,可能包含一个简单的Java程序,演示了如何使用Dom4j解析XML文件、查找特定元素、修改元素内容,并将结果写回XML。这个例子对于初学者来说非常有帮助,因为它展示了Dom4j在实际应用中的基本用法。...
### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J(Document Object Model for XML)是一款用于处理XML文档的轻量级Java库。它提供了一种非常简单且灵活的方式来创建、读取、修改和删除XML文档。DOM4J的主要...
在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...
这个“dom4j解析xml例子”压缩包应该包含了一些示例代码、帮助文档和使用说明,旨在帮助初学者快速理解和应用DOM4J。 在XML解析领域,DOM(Document Object Model)是一种将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[] args) {...
一、DOM4J解析XML的基本步骤 1. 导入DOM4J库:首先,你需要在项目中引入DOM4J库。如果这是一个Java项目,你可能已经从压缩包中包含了所需的jar文件,如dom4j-1.6.1.jar。 2. 创建Document对象:解析XML文件的第一...
### Dom4j遍历解析XML知识点详解 #### 一、Dom4j简介及环境搭建 Dom4j(Document Object Model for Java)是一个Java语言的开源XML API,它提供了非常便捷的方式来解析、创建以及操作XML文档。相较于其他XML解析库...
本篇将通过一个实际的例子来探讨如何使用Dom4j解析XML配置文件。 首先,我们需要了解DOM4J的基本概念。DOM(Document Object Model)是一种用于表示XML或HTML文档的标准模型,而Dom4j是基于DOM的,但它比标准的DOM...
在本例中,我们将深入探讨如何使用DOM4J来解析XML文件。 首先,我们需要理解XML(Extensible Markup Language)的基本概念。XML是一种标记语言,用于存储和传输数据,具有自描述性和结构化的特点,广泛应用于网络...
- **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...
在这个例子中,我们将深入理解DOM4J如何解析XML文件,同时也会探讨一些相关工具的使用。 XML(eXtensible Markup Language)是一种结构化数据格式,广泛应用于数据交换、配置文件等领域。DOM(Document Object ...
DOM解析XML的方式是将整个XML文档加载到内存中,形成一棵完整的树,然后可以通过遍历这棵树来访问和修改XML的内容。 在给出的例子中,我们看到以下步骤: 1. 首先,创建`DocumentBuilderFactory`实例,它是用于...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、创建、修改和解析变得简单易行。在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件...
- **灵活性**:DOM4J提供了灵活的API,使得操作XML文档变得简单。 - **效率**:虽然DOM4J使用DOM模型,但通过优化实现了相对较高的性能。 - **兼容性**:除了SAX和DOM,DOM4J还支持StAX和JDOM等其他解析器,具有...