"这篇文章主要介绍了XML操作及其解析,特别是DOM4J库的使用。XML解析有两种常见方法:SAX和DOM。DOM4J在DOM解析工具中性能最优,而SAX在处理大型XML文件时内存效率更高。DOM由于其简便性成为主流选择,甚至Hibernate框架也采用DOM4J。对于小数据量的XML,推荐使用DOM4J,而对于大数据量的XML,应选择SAX。文中还详细讲述了如何使用DOM4J来创建、修改和写入XML文档。" XML(Extensible Markup Language)是一种用于存储和传输结构化数据的标准格式,广泛应用于数据交换和配置文件等领域。在Java中,解析XML主要有两种方式:SAX(Simple API for XML)和DOM(Document Object Model)。 1. 性能比较: - SAX解析器逐行读取XML文档,事件驱动,内存占用较少,适合处理大型XML文件。 - DOM解析器则将整个XML文档加载到内存中,形成一个树形结构,便于遍历和操作,但对内存要求较高。 2. 操作便利性: - DOM操作相对简单,因为它提供了完整文档的访问,可以方便地查找、添加或修改元素,因此在小型项目和需要频繁操作XML的场景中更常见。 - SAX操作较为复杂,因为它基于事件,需要编写回调函数来处理各个事件,适合只需要读取数据而无需修改的情况。 3. 使用选择: - 对于小规模的XML数据,DOM4J作为DOM解析器的实现,因其高效和易用性,是首选。 - 当处理大量XML数据时,为了节省内存,应考虑使用SAX解析器。 DOM4J是Java中一个强大的DOM解析库,提供了许多便利的API来操作XML。以下是一些基本的DOM4J操作: - 创建XML文档: 可以通过`DocumentHelper.createDocument()`创建一个新的XML文档对象,然后使用`addElement()`方法添加元素,`addAttribute()`方法设置属性,`setText()`方法填充元素内容。 - 格式化XML输出: 使用`OutputFormat`类可以设定XML输出的格式,如是否换行、编码方式和缩进字符。 - 写入XML文档: 通过`XMLWriter`类将XML文档写入文件。可以先创建一个`XMLWriter`实例,然后指定输出流(如`FileOutputStream`),最后调用`write()`方法将文档写入。 DOM4J提供了丰富的功能,使得XML操作变得简单且灵活。无论是创建新的XML文件,还是读取并修改现有的XML文档,DOM4J都是一个值得信赖的工具。在实际项目中,根据数据量和具体需求,合理选择SAX或DOM4J进行XML处理。
1.性能比较:sax效率比dom高(sax省内存,dom占内存)
2.操作比较:dom操作比sax简单(所以dom是最主流最常用的方式,就连大名鼎鼎的Hibernate也用dom4j)
3.使用选择:解析中小数据量的xml最好选dom4j,解析大数据量的xml最好选sax
二.用dom4j操作xml
1.创建xml文档并将文档输出到硬盘中
(1).创建xml文档对象并向其中添加节点和设置属性:
Document xmlDocument=DocumentHelper.createDocument();//创建一个只有版本信息的空xml文档对象
Element xxElement=空xml文档对象/根节点对象/其它节点对象.addElement("elementName");//给空的xml文档/其根节点添加根/子节点
xxElement.addAttribute("attributeName","attributeValue");//给节点添加属性和属性值
xxElement.setText("节点中的值");//给双节点设置节点间的值
//xxElement.addElement("elementName").setText("value");//支持级联调用方法
(2).创建xml文档格式化对象并设置格式化方式:(可无)
OutputFormat opf=new OutputFormat();//实例化输出格式化对象
opf.setNewlines(true);//设置换行
opf.setEncoding("gb2312");//设置编码方式
opf.setIndent("\t");//设置缩进
(3).创建xml文档输出对象并将文档输出
方案一.
XMLWriter xmlWriter=new XMLWriter(new OutputStreamWriter(new FileOutputStream("d://*.xml"),"编码方式"));
xmlWriter.write(xmlDocument);
xmlWriter.flush();
方案二.
XMLWriter xmlWriter=new XMLWriter(opf);//创建XML输出对象,当不需要格式化时直接不传入格式化对象即可
File xmlFile=new File("D:/*.xml");//根据指定的文件名(xxx路径下的xxx文件)实例化文件对象
FileOutputStream fops=new FileOutputStream(xmlFile);//以创建的文件对象创建文件输出流对象
xmlWriter.setOutputStream(fops);//将指定的输出流对象设置为将要输出的对象
xmlWriter.write(xmlDocument);//将指定的对象输出
xmlWriter.flush();
注:将数据库表中的数据转换为xml同上
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 0
- 资源: 38
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦