`
tankmarshal
  • 浏览: 36305 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dom4j解析XML,生产XML,大文件XML

    博客分类:
  • JAVA
阅读更多

dom4j跟Jdom、sax、dom之间的区别网上很多,一搜一大堆,但是处理大文件的比较少。

所以总结下生成和读取大的XML文件

生成大文件

		public void writeToFile(String filePath,String fileName){	
                                 Document doc = DocumentHelper.createDocument();
		Element rootElement=doc.addElement("root");
		rootElement.addAttribute("name", "root");
		Element testElement = DocumentHelper.createElement("eleTest");
		testElement.addAttribute("name", "testEle");
		testElement.addText("this is another text");
		testElement.setParent(rootElement);
		XMLWriter out = null;
		try{
			out = new XMLWriter(new FileWriter(new File(filePath+File.separator+fileName)));
			out.startDocument();		
			out.writeOpen(rootElement);
			for(int i=0;i<=10000000;i++){
				out.write(testElement);
			}
			out.writeClose(rootElement);
			
		}catch(SAXException e){
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
		}
		finally{
			if( out!=null ){
				try {
					out.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
}

 

插入10000000条数据,可以生成500多M的文件

 

然后再读取这个文件

				SAXReader reader = new SAXReader();
				reader.setDefaultHandler(new ElementHandler(){
					public void onEnd(ElementPath ep) {
				        Element e = ep.getCurrent(); //获得当前节点   
				        System.out.println(e.getName());
				        e.detach(); //记得从内存中移去 
					}
					public void onStart(ElementPath arg0) {
					}
				});
				doc = reader.read(new BufferedInputStream(new FileInputStream(new File(fileName))));

 

    一般网上的都是用一个实现 ElementHandler的类来做,然后把reader.setDefaultHandler(this)

    我这里是用一个匿名类

    主要的要点就是要每读取一个节点,就需要从内存中把这个节点给移去,要不肯定会报内存不足的。

分享到:
评论

相关推荐

    dom4j解析xml详解

    - **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,XML是常用的数据传输格式,DOM4J能够帮助构建和解析这些XML消息。 - **文档生成...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    使用 dom4j 解析 XML

    使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml

    dom4j解析xml文件(增删改查)

    在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...

    dom4j 解析写入xml

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

    java dom4j解析xml

    Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...

    dom4j解析xml文件代码示例

    在本示例中,我们将深入探讨如何使用DOM4J解析XML文件,以`CacheInit.java`作为我们的核心代码示例,并参考`emailTemplateConfig.xml`作为实际操作的对象。 首先,让我们了解XML(eXtensible Markup Language)。...

    dom4j解析xml实例

    **DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...

    DOM4J 解析XML

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

    用dom4j解析xml文件

    本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...

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

    本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...

    dom4j解析xml

    6. **SAX和DOM**: DOM4J不仅支持DOM模型,还支持SAX(Simple API for XML)解析器,后者在处理大型XML文件时更加高效,因为它不需要将整个文档加载到内存中。 **DOM4J解析XML的基本步骤** 1. **创建Document**: ...

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

    要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...

    dom4j 解析xml实例

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

    dom4j解析XML所需jar包

    2. **XML解析**:DOM4J支持多种解析方式,包括SAX(Simple API for XML)和DOM。SAX是基于事件的解析,适用于处理大文件;DOM则将整个XML文档加载到内存,适合小规模或内存允许的情况。DOM4J还提供了StAX(Streaming...

    dom4j解析xml,利用反射机制

    在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...

    dom4j解析XML

    本人自己研究的解析方法,主要用dom4j解析XML文件,进而获取里面的信息

    java dom4j 解析xml的例子,可用

    解析XML时,DOM4J首先读取XML文件并构建一个节点结构,然后你可以通过API遍历和修改这个结构。例如,你可以通过Element、Attribute、Text等类来访问和修改元素、属性和文本内容。 2. **基本用法**:在Java程序中,...

Global site tag (gtag.js) - Google Analytics