java dom4j 修改_Java使用dom4j实现对xml简单的增删改查操作示例

本文实例讲述了Java使用dom4j实现对xml简单的增删改查操作。分享给大家供大家参考,具体如下:

xml留了个结课作业: 后台用xml文件作为存储做个迷你系统实现增删改查的功能, 在此记录一下

先得引入dom4j的jar包放在项目的WEB-INF-->lib目录下

3bdaad95a899d691c0adde3dae046fcc.png

先新建一个读取器,  读取你想操作的xml文件(我这里写的绝对路径)

//读取XML文件,获得document对象

SAXReader reader = new SAXReader();

Document document = null;

try {

document = reader.read(new File("E:\\eclipse\\XmlTest\\src\\xml\\user.xml"));

} catch (DocumentException e) {

e.printStackTrace();

}

上边的try catch不加的话eclipse会报错, 因为涉及到文件操作, document不初始为null化也会报错

//获得根节点的属性对象

Element rootElem = document.getRootElement();

基本语句:

//以下操作以root为例,所有节点都可以并非只有根节点,下面的孩子指第一代孩子

//返回root节点的标签名为"user"的孩子节点,如果有多个只返回第一个

Element contactElem = rootElem.element("user");

//获取节点标签之间的内容

String text=contactElem .getText();

//返回所有的孩子节点,即一个List

List eles = rootElem.elements();

//返回该节点的属性,返回的是一个对象

Attribute rootAttr = rootElem.attribute("id");

//更改属性值

rootAttr.setValue("更改后的id值");

//给元素新增属性和属性值

rootElem.addAttribute("name", "新增成功!");

//删除节点的某属性

rootElem.remove(rootAttr);

//节点和节点的属性都可以获取名字(标签名/属性名)

String idName = rootAttr.getName();

String tagName = rootElem.getName();

//获取属性的属性值

String value=rootAttr.getValue();

所有涉及到修改增加的操作, 修改完dom对象后都要写回文件:

OutputFormat format=OutputFormat.createPrettyPrint();

format.setEncoding("UTF-8");

org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File(这里填你的xml路径)), format);

writer.write(document);

writer.close();

以下都省略文件的读取和document / rootElem的获取(上面提到过)

我这里有个用户表如下, 做后端的账号密码存储

2d35764b7b559ab3607cc88b8c34d9a1.png

//user, password是前台传来的账号密码

boolean RightPassword=false;

List eles = rootElem.elements();

for (Element ele : eles)

{

if(ele.element("account").getText().equals(user))

{

if(ele.element("password").getText().equals(password))

RightPassword=true;

return;

}

}

这里拿另一个xml举例, 该xml存储文章

dccceeb4f51747f2951db2267c66524e.png

示例增加一个文章,大家可以做的更复杂一些

Element newArticle=rootElem.addElement("article");

newArticle.setText("文章内容");

//以下的输出文件和上面提到的一样

OutputFormat format=OutputFormat.createPrettyPrint();

format.setEncoding("UTF-8");

org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);

writer.write(document);

writer.close();

下面示例按标签内容删除一个节点

(应该按某个属性值如id删除,因为上例追求简单没设属性)

List eles = rootElem.elements();

for (Element ele : eles)

{

if(ele.getText().equals("按照内容删除"))

{

rootElem.remove(ele);

}

}

//以下的输出文件和上面提到的一样

OutputFormat format=OutputFormat.createPrettyPrint();

format.setEncoding("UTF-8");

org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);

writer.write(document);

writer.close();

和上面的删除只有一句不同, 找到节点后想修改什么就 set什么就可以了

List eles = rootElem.elements();

for (Element ele : eles)

{

if(ele.getText().equals("按照内容修改"))

{

ele.setText("修改后的内容");

}

}

//以下的输出文件和上面提到的一样

OutputFormat format=OutputFormat.createPrettyPrint();

format.setEncoding("UTF-8");

org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);

writer.write(document);

writer.close();

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

希望本文所述对大家java程序设计有所帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值