- 浏览: 53655 次
- 性别:
- 来自: 南京
最新评论
-
qqggcc:
没有这么麻烦吧
我觉得POI大数据量的时候回出点问题
JX ...
使用 poi 和fastExcel 包读取excel 表格文件 -
bjt100:
很好,刚好派用着。
使用 poi 和fastExcel 包读取excel 表格文件 -
tommy402gongxue:
POI的real方法中:
修改为
if (mycell.get ...
使用 poi 和fastExcel 包读取excel 表格文件 -
tommy402gongxue:
这个存在很严重的bug,一个内容独占了几个单元格的时候,你会输 ...
使用 poi 和fastExcel 包读取excel 表格文件 -
風一樣的男子:
我一般用jxl
使用 poi 和fastExcel 包读取excel 表格文件
最近使用 dom4j包来操作了xml 文件,具体有 search, add, modi,del 操作,下面将一个 javaBean 展示出来给大伙看看。
package com.jim.beans; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class DepartmentBean { private String ID; //主键,没有任何意义 private String bh; //部门编号 private String name; //部门名称 private String tel; //部门电话 private String address; //部门地址 private File file; //要读取的 xml文件 public DepartmentBean() { } public DepartmentBean(File file) { this.file = file; } public DepartmentBean(String id, String bh, String name, String tel, String address) { ID = id; this.bh = bh; this.name = name; this.tel = tel; this.address = address; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getBh() { return bh; } public void setBh(String bh) { this.bh = bh; } public String getID() { return ID; } public void setID(String id) { ID = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } //查询若干个部门 支持模糊查询 public ArrayList search(String attrName,String attrValue) throws DocumentException { ArrayList al = new ArrayList(); List list = null; //File f = new File("d:\\department.xml"); //把要解析的xml文件包装成File类型 SAXReader saxReader = new SAXReader(); //加载XML文档 saxReader.setEncoding("UTF-8"); Document document = saxReader.read(this.file); /* 采用了 dom4j 支持 xPath 这个用法 */ if((attrName == null || attrName.trim().equals("")) ||(attrValue == null || attrValue.trim().equals(""))) { list = document.selectNodes("/departments/department"); }else { //[注]: 下面这句采用的是 精确查询 等效于 某个属性=值 //list = document.selectNodes("/departments/department[@"+attrName+"='"+attrValue+"']"); //[注]: 下面这句采用的是 模糊查询 等效于 某个属性 like %值% list = document.selectNodes("/departments/department[contains(@"+attrName+",'" + attrValue + "')]"); } Iterator iterator = list.iterator(); DepartmentBean departmentBean = null; while(iterator.hasNext()) { Element element = (Element)iterator.next(); departmentBean = new DepartmentBean(); departmentBean.setID(element.attributeValue("id")); departmentBean.setBh(element.attributeValue("bh")); departmentBean.setName(element.attributeValue("name")); departmentBean.setTel(element.attributeValue("tel")); departmentBean.setAddress(element.attributeValue("address")); al.add(departmentBean); } return al; } //查询某个部门 public DepartmentBean getDepartment(String attrName,String attrValue) throws DocumentException { ArrayList al = search(attrName,attrValue); if(al != null && al.size() > 0) { return (DepartmentBean)al.get(0); }else { return null; } } //添加部门 public void add(DepartmentBean newDepartmentBean) throws DocumentException, IOException { Document document = DocumentHelper.createDocument(); //创建根节点,并返回要节点 Element departmentsElement = document.addElement("departments"); departmentsElement.addComment("所有的部门信息"); //向根节点departments中加入department子节点 Element departmentElement = null; departmentElement = departmentsElement.addElement("department"); departmentElement.addAttribute("id",newDepartmentBean.getID()); departmentElement.addAttribute("bh",newDepartmentBean.getBh()); departmentElement.addAttribute("name",newDepartmentBean.getName()); departmentElement.addAttribute("tel",newDepartmentBean.getTel()); departmentElement.addAttribute("address",newDepartmentBean.getAddress()); //File f = new File("d:\\department.xml"); //把要解析的xml文件包装成File类型 SAXReader saxReader = new SAXReader(); //加载XML文档 saxReader.setEncoding("UTF-8"); Document documentRead = saxReader.read(this.file); List list = documentRead.selectNodes("/departments/department"); Iterator iterator = list.iterator(); while(iterator.hasNext()) { departmentElement = departmentsElement.addElement("department"); Element element = (Element)iterator.next(); Attribute attrID = element.attribute("id"); departmentElement.addAttribute("id",attrID.getValue()); Attribute attrBh = element.attribute("bh"); departmentElement.addAttribute("bh",attrBh.getValue()); Attribute attrName = element.attribute("name"); departmentElement.addAttribute("name",attrName.getValue()); Attribute attrTel = element.attribute("tel"); departmentElement.addAttribute("tel",attrTel.getValue()); Attribute attrAddress = element.attribute("address"); departmentElement.addAttribute("address",attrAddress.getValue()); } //把修改后document写到原有的department.xml文件,以覆盖原有的department.xml文件 XMLWriter output = new XMLWriter(new OutputStreamWriter(new FileOutputStream(this.file),"UTF-8")); output.write(document); output.close(); } //编辑部门 public void edit(String attrName,String attrValue,DepartmentBean newDepartmentBean) throws DocumentException, IOException { //File f = new File("d:\\department.xml"); //把要解析的xml文件包装成File类型 SAXReader saxReader = new SAXReader(); //加载XML文档 saxReader.setEncoding("UTF-8"); Document document = saxReader.read(this.file); List list = null; Iterator iterator = null; if((attrName == null || attrName.trim().equals("")) ||(attrValue == null || attrValue.trim().equals(""))) { //如果设置的修改条件为 null ,则什么也不做 return ; }else { list = document.selectNodes("/departments/department[@"+attrName+"='"+attrValue+"']"); } if(list == null || list.size() == 0) { //如果设置的修改条件没有符合的记录,则什么也不做 return ; }else { iterator = list.iterator(); while(iterator.hasNext()) { Element e = (Element) iterator.next(); Attribute attrB = e.attribute("bh"); attrB.setValue(newDepartmentBean.getBh()); Attribute attrN = e.attribute("name"); attrN.setValue(newDepartmentBean.getName()); Attribute attrT = e.attribute("tel"); attrT.setValue(newDepartmentBean.getTel()); Attribute attrA = e.attribute("address"); attrA.setValue(newDepartmentBean.getAddress()); } } //把修改后document写到原有的department.xml文件,以覆盖原有的department.xml文件 XMLWriter output = new XMLWriter(new OutputStreamWriter(new FileOutputStream(this.file),"UTF-8")); output.write(document); output.close(); } //删除部门 public void del(String attrName,String attrValue) throws DocumentException, IOException { //File f = new File("d:\\department.xml"); //把要解析的xml文件包装成File类型 SAXReader saxReader = new SAXReader(); //加载XML文档 saxReader.setEncoding("UTF-8"); Document documentRead = saxReader.read(this.file); Document documentWrite = null; List list = null; if((attrName == null || attrName.trim().equals("")) ||(attrValue == null || attrValue.trim().equals(""))) { //如果设置的修改条件为 null ,则什么也不做 return ; }else { list = documentRead.selectNodes("/departments/department[@"+attrName+"!='"+attrValue+"']"); } documentWrite = DocumentHelper.createDocument(); Element departmentsElement = documentWrite.addElement("departments"); departmentsElement.addComment("所有的部门信息"); if(list == null || list.size() == 0) { //如果是全删除了,则什么也不做 //把修改后document写到原有的department.xml文件,以覆盖原有的department.xml文件 XMLWriter output = new XMLWriter(new OutputStreamWriter(new FileOutputStream(this.file),"UTF-8")); output.write(documentWrite); output.close(); return ; }else { //向根节点departments中加入department子节点 Element departmentElement = null; Iterator iterator = list.iterator(); while(iterator.hasNext()) { departmentElement = departmentsElement.addElement("department"); Element element = (Element)iterator.next(); Attribute attrID = element.attribute("id"); departmentElement.addAttribute("id",attrID.getValue()); Attribute attrBh = element.attribute("bh"); departmentElement.addAttribute("bh",attrBh.getValue()); Attribute attrName2 = element.attribute("name"); departmentElement.addAttribute("name",attrName2.getValue()); Attribute attrTel = element.attribute("tel"); departmentElement.addAttribute("tel",attrTel.getValue()); Attribute attrAddress = element.attribute("address"); departmentElement.addAttribute("address",attrAddress.getValue()); } //把修改后document写到原有的department.xml文件,以覆盖原有的department.xml文件 XMLWriter output = new XMLWriter(new OutputStreamWriter(new FileOutputStream(this.file),"UTF-8")); output.write(documentWrite); output.close(); } } //得到 xml 文件中最大的主键值 + 1 public int getMaxID() throws DocumentException { SAXReader saxReader = new SAXReader(); //加载XML文档 saxReader.setEncoding("UTF-8"); Document document = saxReader.read(this.file); List list = document.selectNodes("/departments/department"); Iterator iterator = null; int max = 0; if(list == null || list.size() == 0) { max = 0; }else { iterator = list.iterator(); while(iterator.hasNext()) { Element element = (Element)iterator.next(); String maxStr = element.attributeValue("id"); int maxInt = Integer.parseInt(maxStr); if(maxInt > max) { max = maxInt; } } } return max + 1; } public static void main(String[] args) throws DocumentException, IOException { File f = new File("d:\\department.xml"); DepartmentBean db = new DepartmentBean(f); System.out.println(db.getMaxID()); //大家可以在这里写一些调用上面的 search ,add , del , edit 方法代码来测试测试,department.xml 文件在附件中已上传了此外还要要到两个特殊的包一个名叫jaxen-1.1.1.jar,还有一个叫dom4j-1.6.1.jar大家可以自己下载 } }
- department.rar (344 Bytes)
- 下载次数: 82
发表评论
-
其实可以这样做
2009-04-08 23:02 952在之前的公司,利用eclipse做开发总是喜欢把项目发布到to ... -
利用JAVA写一段上传文件程序(模拟Ftp客户端)
2009-03-04 15:34 3213package com.hellojim.beans; im ... -
使用 poi 包生成(向.xls表格中写入)excel 表格文件
2009-02-02 17:49 3977package com.jim.tools; import ... -
使用 poi 和fastExcel 包读取excel 表格文件
2009-01-20 16:41 1961今年做了一些项目,其 ... -
话说JAVA中成员访问控制
2009-01-17 18:07 1933JAVA中成员访问控制有四种类型,从不开放 到 开放,分别为 ... -
子类与父类之间的转换
2009-01-07 16:46 2769class A { public void fun1() ... -
abstract、 interface 关键字
2009-01-07 16:41 1449//abstract interface 关键字 /* int ... -
extends,this,super,final 关键字的应用
2009-01-07 16:39 1050//extends,this,super,final 关键字的 ... -
内部类
2009-01-06 13:20 907class Outer { private String u ... -
使用javadoc工具生成类似 jdk API 形式的文档
2009-01-05 21:04 2253/** * Title: User 类<br> ... -
finalize 关键字和 System.gc() 的作用
2009-01-02 17:11 3212//此类说明了 finalize 关键字以及 System.g ... -
this 关键字的作用
2009-01-02 16:42 1499//此类说明了 this 关键字的作用 /* 1.用在构造方 ... -
public 与 private 关键字的区别
2009-01-02 16:24 1514//此类说明了 private 与 public 关键字的作用 ... -
path与classpath区别
2008-12-26 16:22 2052对于初学java 的人来说,可能在 path 与 classp ... -
关于 org.apache.xml.utils.WrappedRuntimeException
2008-03-13 18:09 1968今天下午把原有工程的一段运行良好的代码 copy 到一个新工程 ... -
关于一个 send E-mail 问题
2007-12-09 13:46 1258package com.oa.modules.personne ... -
关于一些 IO Class
2007-12-04 22:49 1029这段时间一直在看 java 关于IO流处理这处,所汲及到的类有 ...
相关推荐
DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件
在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...
2. **创建XML文件**:使用DOM4j创建一个新的XML文件,这通常涉及到`Document`、`Element`和`Writer`的使用。例如,你可以创建一个包含根元素和子元素的XML文件。 3. **动态创建XML节点**:在已有的XML文档中动态...
基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。
DOM4J的核心优势之一在于其丰富的接口体系,这些接口定义在`org.dom4j`包内,提供了对XML文档进行读写、查询、修改等操作的能力。 1. **Attribute**: 代表XML中的属性,可用于获取和设置属性值。 2. **Branch**: ...
要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...
为了使用这个库,你需要将该jar包添加到项目的类路径中,然后就可以通过DOM4J提供的类和方法来解析和操作XML文件了。 总之,DOM4J是一个功能强大的XML处理库,无论是在小型项目还是大型系统中,都能发挥其优势,...
本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解XSD的作用至关重要。XSD文件定义了XML文档的元素、属性、数据类型以及它们之间的关系。通过...
在Java开发中,dom4j和jaxen是两个常用的库,用于解析和操作XML文档。 **dom4j** 是一个非常灵活且功能强大的Java XML API,它提供了全面的XML解决方案,包括XML的读取、写入、修改以及XPath查询等功能。dom4j的...
如果不使用Maven,可以下载dom4j的jar包并将其添加到项目的类路径中。 接下来,我们将逐步创建一个XML文档: 1. **创建Document对象**:这是XML文档的根节点,可以通过`DocumentFactory`的`createDocument()`方法...
与传统的DOM API相比,DOM4J更注重Java集合框架的集成,使得操作XML文档更加直观和高效。DOM4J的主要特点包括: 1. **面向对象的设计**:DOM4J将XML元素、属性、文本等都封装为Java对象,通过这些对象可以直接进行...
在实际项目中,`testPuke`文件可能是测试用例,包含使用DOM4J进行XML操作的代码示例。通过运行这些示例,你可以更好地理解和掌握DOM4J的用法。DOM4J的灵活性和易用性使其成为Java开发中处理XML的首选工具之一,无论...
3. **DOM4J解析XML**:介绍如何使用DOM4J读取XML文件并创建Document对象,解析XML元素和属性。 4. **DOM4J格式化API**:详述DOM4J库中用于格式化XML的类和方法,如`DocumentHelper.formatDocument()`或`Element....
### 使用dom4j操作XML详解 #### 一、DOM4j简介与配置 **DOM4j** 是一款专为Java平台设计的开源XML解析处理工具。它的设计充分考虑了性能和易用性,同时提供了对DOM、SAX及JAXP等标准的支持,因此非常适合进行复杂...
本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至文件系统。 #### 一、Dom4J简介 Dom4J(Document Object Model for Java)是一款开源的、轻量级的...
在这个主题中,我们将深入探讨DOM4J如何递归地解析XML文件,并将解析结果映射到动态bean或Map中。 首先,让我们了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于存储和传输结构化数据...
在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...