`

Dom4j学习感受

阅读更多
package cdu.edu.cy.test2.dao;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.xml.parsers.*;

import org.w3c.dom.*;
import org.xml.sax.SAXException;
import java.io.*;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;



import cdu.edu.cy.test2.model.User;
public class UserDaoXML {
private User u = null;
private String xmlPath="E:/workplace/XMLTest4/src/cdu/edu/cy/test2/dao/users.xml";
//DOM访问中要使用的变量
public DocumentBuilderFactory factory;
public DocumentBuilder builder;
public Document doc;
File file = new File(xmlPath);
private Document getDocument(File file) throws Exception {
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
return doc;
}


public UserDaoXML(){
try{
factory = DocumentBuilderFactory.newInstance();
    builder = factory.newDocumentBuilder();
  //  doc = builder.parse(xmlPath);
}catch(Exception e){
e.printStackTrace();
}

}
private boolean Add(User user1) throws Exception{

Document doc=getDocument(file);
Element root=doc.getRootElement();
Element num=(Element)root.elementIterator().next();
int ID = Integer.parseInt(num.getText());
//修改num的值
num.setText(String.valueOf(++ID));

Element user=root.addElement("user");
Element BaseInfo = user.addElement("BaseInfo");
Element OtherInfo = user.addElement("OtherInfo");
BaseInfo.addElement("id").addText(String.valueOf(++ID));
BaseInfo.addElement("uname").addText(user1.getUname());
BaseInfo.addElement("password").addText(user1.getPassword());
BaseInfo.addElement("sex").addText(user1.getSex());
OtherInfo.addElement("birthyear").addText(String.valueOf(user1.getBirthYear()));
OtherInfo.addElement("birthmonth").addText(String.valueOf(user1.getBirthMonth()));
OtherInfo.addElement("birthday").addText(String.valueOf(user1.getBirthDay()));
OtherInfo.addElement("school").addText(user1.getSchool());
OtherInfo.addElement("emailaddress").addText(user1.getEmailAddress());
OutputFormat format=new OutputFormat();
format.setEncoding("GBK");
XMLWriter writer=new XMLWriter(new FileWriter(file),format);
writer.write(doc);
writer.close();
return true;
}
/**
* 添加新用户
*/
public boolean UserAdd(User user1)throws Exception{
if(Add(user1))
{
return true;
}
return false;
}
/**
* 删除用户消息
*/
public boolean UserDelete(int id) throws Exception{
Document doc=getDocument(file);
Element root =doc.getRootElement();
List<Element> list=root.elements("user");
for (Element el: list) {
Element ur = (Element)el;
Element Base = el.element("BaseInfo");
if (Integer.parseInt(Base.element("id").getTextTrim())==id) {
root.remove(el);
OutputFormat format=new OutputFormat();
     format.setEncoding("GBK");
XMLWriter writer=new XMLWriter(new FileWriter(file));
writer.write(doc);
writer.close();
return true;
}
}
return false;
}
/**
* 更新用户消息
*/
public boolean UserUpdate(User user) throws Exception{
Document doc=getDocument(file);
Element root =doc.getRootElement();
List<Element> list=root.elements("user");
for (Element el: list) {
Element ur = (Element)el;
Element Base = el.element("BaseInfo");
Element Other = el.element("OtherInfo");

if (Integer.parseInt(Base.element("id").getTextTrim())==user.getId()) {
//更新该元素
Base.element("uname").setText(user.getUname());
Base.element("password").setText(user.getPassword());
Base.element("sex").setText(user.getSex());
Other.element("birthyear").setText(String.valueOf(user.getBirthYear()));
Other.element("birthmonth").setText(String.valueOf(user.getBirthMonth()));
Other.element("birthday").setText(String.valueOf(user.getBirthDay()));
Other.element("school").setText(String.valueOf(user.getSchool()));
Other.element("emailaddress").setText(String.valueOf(user.getEmailAddress()));
OutputFormat format=new OutputFormat();
     format.setEncoding("GBK");
     XMLWriter writer=new XMLWriter(new FileWriter(file),format);
     writer.write(doc);
writer.close();
return true;
}
}
return false;
}
/**
* 查询所有注册用户
*/
public List<User> getAllUsers() throws Exception{
List list = new ArrayList<User>();
Document doc=getDocument(file);
Element root =doc.getRootElement();
List<Element> list1=root.elements("user");
for (Element el: list1) {
User us = new User();
Element Base = el.element("BaseInfo");
us.setId(Integer.parseInt(Base.element("id").getText()));
us.setUname(Base.element("uname").getText());
us.setPassword(Base.element("password").getTextTrim());
us.setSex(Base.element("sex").getTextTrim());
Element Other = el.element("OtherInfo");
us.setBirthYear(Integer.parseInt(Other.element("birthyear").getTextTrim()));
us.setBirthMonth(Integer.parseInt(Other.element("birthmonth").getTextTrim()));
us.setBirthDay(Integer.parseInt(Other.element("birthday").getTextTrim()));
us.setSchool(Other.element("school").getText());
us.setEmailAddress(Other.element("emailaddress").getTextTrim());

list.add(us);
}
return list;
}
/**
* 注册用户登录
*/
public int UserLogin(User user) throws Exception{
int flag=0;
Document doc=getDocument(file);
Element root =doc.getRootElement();
List<Element> list=root.elements("user");
for (Element el: list) {
Element ur = (Element)el;
Element Base = el.element("BaseInfo");
if (Base.element("uname").getTextTrim().equals(user.getUname())) {
if(Base.element("password").getTextTrim().equals(user.getPassword())){
flag = Integer.parseInt(Base.element("id").getText());
return flag;
}
}
}
return flag;
}
}

分享到:
评论

相关推荐

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...

    Dom4j学习笔记

    **标题解析:** "Dom4j学习笔记" 这个标题明确指出了我们要探讨的主题——Dom4j。Dom4j是一个流行的Java库,用于处理XML文档。它提供了丰富的API,使得XML的读取、写入、操作变得简单易行。在学习笔记中,通常会涵盖...

    dom4j_dom4j1.6.1安装包_

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的解析、创建、查询和修改变得更为简单。在本文中,我们将深入探讨DOM4J 1.6.1版本的安装及其在Maven项目中的应用。 首先,DOM4J...

    dom4j-1.6.1 与 dom4j-2.0.0-ALPHA

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的解析、创建、修改和查询变得简单。这次我们有两个版本的DOM4J库:1.6.1和2.0.0-ALPHA。这两个版本在功能、性能和API设计上都有所...

    dom4j dom4j dom4j dom4j

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单易行。在Java世界中,DOM4J是与DOM、SAX和JDOM等其他XML处理库并驾齐驱的一个选择,尤其在处理...

    dom4j_1.6.1.jar dom4j_2.1.0.jar

    标题提及的"dom4j_1.6.1.jar"和"dom4j_2.1.0.jar"是两个不同版本的DOM4J库的Java档案文件,DOM4J是一个非常流行的Java XML API,用于处理XML文档。这两个版本的差异在于功能、性能优化和可能存在的bug修复。描述中...

    dom4j-2.1.3.zip

    "dom4j-2.1.3-javadoc.jar"文件则包含了DOM4J库的API文档,是开发者学习和使用DOM4J的重要参考资料。通过这个文件,我们可以查找类、接口、方法的详细说明,理解它们的功能和使用方式,这对于开发过程中快速定位问题...

    一个简单的Dom4j学习的例子

    **标题解析:** "一个简单的Dom4j学习的例子" 暗示了我们将探讨的是如何使用Dom4j这个Java库来处理XML文档的基础知识。Dom4j是一个灵活且高效的XML处理库,它提供了丰富的API来读取、写入、修改XML文档。 **描述...

    dom4j学习资料_dom4j-1.6.1-API.chm

    通过这些资源,你可以系统性地学习DOM4J,从基础的XML文档创建,到复杂的XPath查询,再到XML的修改和操作。实践使用DOM4J时,结合API文档和示例代码,将大大提升你的XML处理能力。同时,了解Jaxen可以帮助你更灵活地...

    dom4j dom4j1.6 dom4j最新版

    `dom4j-1.6.1-sources.jar`包含了源代码,方便查看和学习;`dom4j-1.6.1.tar.gz`和`dom4j-1.6.1.zip`则是不同的压缩格式,提供了库文件的打包形式。 在实际开发中,DOM4J常用于XML配置文件的读取、XML数据的交换、...

    dom4j学习资料

    DOM4J是一个强大的Java库,专门用于处理...这份"dom4j学习资料"很可能会包含教程、示例代码、API文档等内容,这些都是深入学习DOM4J的重要资源。通过系统学习和实践,你将能够自如地运用DOM4J解决实际开发中的XML问题。

    dom4j-2.0.3.zip

    《深入解析DOM4J——基于Java的XML处理框架》 ...通过阅读DOM4J的API文档(如`dom4j-2.0.3-javadoc.jar`),结合源码学习(`dom4j-2.0.3-sources.jar`),可以深入理解其实现原理并更好地利用它来解决实际问题。

    所有版本的dom4j工具包

    标题提到的"所有版本的dom4j工具包"表明这是一个包含多版本DOM4J库的集合,可能包括了从早期到较新的一些版本,如dom4j-1.4.jar、dom4j-1.6.1.jar和dom4j-1.5.2.jar。这些不同版本的库可能分别对应于不同的功能特性...

    dom4j需要的包

    在标题中提到的“dom4j需要的包”,主要包括了两个JAR文件和一个学习帮助文档。这两个JAR文件是DOM4J库的核心组件和依赖: 1. `jaxen-1.1-beta-9.jar`:这是一个XPath实现库,它允许你在DOM4J中执行XPath表达式。...

    dom4j所依赖的所有jar包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的API,使得开发者可以方便地读取、写入、修改以及操作XML文件。DOM4J 1.6.1是这个库的一个稳定版本,发布于较早时期,但依然广泛应用于许多Java...

    dom4j-2.1.1-API文档-中英对照版.zip

    赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...

    dom4j 2.1.1

    1. 易于使用:DOM4J的API设计直观,使得开发者可以快速上手,减少学习成本。它提供了丰富的接口和类,能够以面向对象的方式处理XML文档。 2. 性能优异:相比其他XML解析库,DOM4J在处理大规模XML文档时表现出更好的...

    DOM4J帮助文档及使用教程

    帮助文档和使用教程是学习DOM4J的关键资源。这些文档通常包含以下内容: 1. **介绍**:解释DOM4J的基本概念和设计目标,以及如何在项目中引入DOM4J库。 2. **安装与配置**:指导用户如何将DOM4J添加到Java项目中,...

    JavaEE源代码 dom4j-1.6.1

    JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源...

    dom4j-2.1.1-API文档-中文版.zip

    赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...

Global site tag (gtag.js) - Google Analytics