用dom4j的方式解析和生成xml文件

本文介绍如何使用Dom4j库进行XML文件的操作,包括将用户信息写入XML文件和从XML文件读取用户信息的过程。文章通过具体示例展示了创建XML文档、添加元素及属性、读取文件等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用dom4j操作xml文件的时候,记得要导入dom4j.jar的jar包

package com.newbbs.xml; import java.io.File; import java.io.FileWriter; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import com.newbbs.model.BbsUser; import com.newbbs.utils.AppConf; import com.newbbs.utils.DateUtil; public class XMLOperation { /** * 把用户的信息存放到xml * @param user * @return 操作成功或者失败 */ public String writeObjectToXml(BbsUser user) { /** 建立document对象 */ Document document = DocumentHelper.createDocument(); /** 建立XML文档的根userInfo */ Element userElement = document.addElement("UserInfo"); /** 加入第一个userid节点 */ Element useridElement = userElement.addElement("userId"); useridElement.addText(user.getUserid()); /** 加入第二个userTitle节点 */ Element userTitleElement = userElement.addElement("userTitle"); userTitleElement.addText(user.getUsertitle()); /** 加入第三个userPass节点 */ Element userPassElement = userElement.addElement("userPass"); userPassElement.addText(user.getUserpass()); /** 加入第四个realName节点 */ Element realNameElement = userElement.addElement("realName"); realNameElement.addText(user.getRealname()); /** 加入第五个score节点 */ Element scoreElement = userElement.addElement("score"); scoreElement.addText(user.getScore().toString()); /** 加入第六个regTime节点 */ Element regTimeElement = userElement.addElement("regTime"); regTimeElement.addText(user.getRegTime().toString()); /** 加入第七个loginTime节点 */ Element loginTimeElement = userElement.addElement("loginTime"); loginTimeElement.addText(user.getLoginTime().toString()); /** 加入第八个posts节点 */ Element postsElement = userElement.addElement("posts"); postsElement.addText(user.getPosts().toString()); /** 加入第九个reposts节点 */ Element repostsElement = userElement.addElement("reposts"); repostsElement.addText(user.getReposts().toString()); /** 加入第十个lastPostTime节点 */ Element lastPostTimeElement = userElement.addElement("lastPostTime"); lastPostTimeElement.addText(user.getLastposttime().toString()); try { String file =AppConf.getconf().get("basePath")+"/newbss/userInfoXML/"+user.getUserid()+".xml"; /** 将document中的内容写入文件中 */ OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gbk"); XMLWriter writer = new XMLWriter(new FileWriter(new File(file)),format); writer.write(document); writer.close(); return "写入XML成功"; }catch(Exception ex){ ex.printStackTrace(); return "写入XML失败"; } } public BbsUser readXmltoObject(String userid) { DateUtil dateUtil = new DateUtil(); String file = AppConf.getconf().get("basePath")+"/newbss/userInfoXML/"+userid+".xml"; SAXReader reader = new SAXReader(); try { Document document = reader.read(new File(file)); Element root = document.getRootElement(); BbsUser user = new BbsUser(); List list = root.elements(); for(int i = 0; i < list.size(); i++) { Element element = (Element)list.get(i); if(i == 0) { user.setUserid(element.getText()); continue; } if(i == 1) { user.setUsertitle(element.getText()); continue; } if(i == 2) { user.setUserpass(element.getText()); continue; } if(i == 3) { user.setRealname(element.getText()); continue; } if(i == 4) { user.setScore(new Integer(element.getText())); continue; } if(i == 5) { user.setRegTime(dateUtil.getDateTimeFromStr(element.getText())); continue; } if(i == 6) { user.setLoginTime(dateUtil.getDateTimeFromStr(element.getText())); continue; } if(i == 7) { user.setPosts(new Integer(element.getText())); continue; } if(i == 8) { user.setReposts(new Integer(element.getText())); continue; } if(i == 9) { user.setLastposttime(dateUtil.getDateTimeFromStr(element.getText())); continue; } } return user; } catch (DocumentException e) { e.printStackTrace(); return null; } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值