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)
我这里是用一个匿名类
主要的要点就是要每读取一个节点,就需要从内存中把这个节点给移去,要不肯定会报内存不足的。
分享到:
相关推荐
- **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,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文件时,...
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...
在本示例中,我们将深入探讨如何使用DOM4J解析XML文件,以`CacheInit.java`作为我们的核心代码示例,并参考`emailTemplateConfig.xml`作为实际操作的对象。 首先,让我们了解XML(eXtensible Markup Language)。...
**DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...
**DOM4J解析XML** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与...
本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...
本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...
6. **SAX和DOM**: DOM4J不仅支持DOM模型,还支持SAX(Simple API for XML)解析器,后者在处理大型XML文件时更加高效,因为它不需要将整个文档加载到内存中。 **DOM4J解析XML的基本步骤** 1. **创建Document**: ...
要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...
在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...
2. **XML解析**:DOM4J支持多种解析方式,包括SAX(Simple API for XML)和DOM。SAX是基于事件的解析,适用于处理大文件;DOM则将整个XML文档加载到内存,适合小规模或内存允许的情况。DOM4J还提供了StAX(Streaming...
在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...
本人自己研究的解析方法,主要用dom4j解析XML文件,进而获取里面的信息
解析XML时,DOM4J首先读取XML文件并构建一个节点结构,然后你可以通过API遍历和修改这个结构。例如,你可以通过Element、Attribute、Text等类来访问和修改元素、属性和文本内容。 2. **基本用法**:在Java程序中,...