dom4j创建、解析xml文件(增删改查)

先对xml文件进行解析,xml文件如下图所示

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>

<student1>
     <studentID>001</studentID>
     <name>sanny</name>
    <major>computer</major>
    <score>89</score>
</student1>

(1)首先要读入xml文件在这有两种方法读入:

一种是绝对路径也就是从电脑硬盘开始的路径

SAXReader reader = new SAXReader();
Document doc= reader.read(new File("E:\0 ksh\00 源码\com.cntrust.fileImport\student.xml"));

另一种是相对路径(对于相对路径后续会再详细说明)

Document doc = reader.read(new File("student.xml"));

(2)查:读取xml文件里面的内容

Element root = doc.getRootElement();获取根节点

一种全部读取利用循环遍历所有节点

for (Iterator iter = root.elementIterator(); iter.hasNext();){
Element e = (Element) iter.next();
System.out.println(e.getText());
}

另一种是读取你想要节点的内容

Element ec = (Element)root.selectSingleNode("name");或者  Element ec = root.element("score");

System.out.println(ec.getText());打印输出

(3)改写xml文件里面的内容

ec.setText("改为:50");

(4)增删

在某节点下添加子节点:

Element elm = newElm.addElement("sex");

 elm.setText(“female");

删除某节点.root.remove(score); 

最后一定要对xml文件进行写入

XMLWriter xmlWriter = new XMLWriter(new FileWriter("student.xml")); //dom4j提供了专门写入文件的对象XMLWriter
xmlWriter.write(doc);

xmlWriter.close(); 

下面是整个程序

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;


public class value {
public static void main(String[] args) throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("student.xml"));
Element root = doc.getRootElement();
System.out.println(root.getName());
for (Iterator iter = root.elementIterator(); iter.hasNext();){
Element e = (Element) iter.next();
System.out.println(e.getText());
}
Element ec = root.element("score");//Element ec = (Element)root.selectSingleNode("name");
System.out.println(ec.getText());
ec.setText("50");
System.out.println(ec.getText());
Element sex = root.addElement("sex");
sex.setText("female");
root.remove(ec);
XMLWriter xmlWriter = new XMLWriter(new FileWriter("student.xml")); //dom4j提供了专门写入文件的对象XMLWriter
xmlWriter.write(doc);
xmlWriter.close();
}
}

运行结果:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>

<student1>
     <studentID>001</studentID>
     <name>sanny</name>
     <major>computer</major>

     <sex>female</sex>
</student1>

 

转载于:https://www.cnblogs.com/wenky/p/6775161.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468737.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java的Class类文件结构及基本字节码指令

Class类文件的结构 概念:Class文件是一组以8位字节为基础单位的二进制流 按顺序整齐排列 没有任何分隔符,内容全部是运行时的必要数据,没有空隙存在 排序方式:高位在前 Big-Endian:最高字节在地址最低位,最低字节在地址最高位 Little-Endian:相反 储存方式:类似于C语言结构体…

Android 7.1 32位apk导致的系统库找不到问题

出现问题 因为我们安卓7.1系统的应用都是64位的APK&#xff0c;我们自己开发的应用是32位的APK&#xff0c;这样在启动的时候&#xff0c;就大概率的出现库找不到的问题。 错误的日志如下&#xff1a; Line 440: 03-12 10:48:39.620 634 634 W PackageManager: Instruct…

python基础知识下载_Python基础知识(一)

一、安装pythonwindow系统下先下载的 python 安装包&#xff0c;直接安装即可。为确认是否安装正确&#xff0c;可用系统记事本创建一个hello.py的程序其中包含如下内容&#xff1a;1 #!/usr/bin/env python32 print("Hello", "World!")代码说明&#xff1…

单词的理解 —— 词义的变化(翻译)

mimic&#xff1a;模仿&#xff0c;摹拟&#xff08;而不是最小化&#xff09;minder&#xff1a;n. 看守者&#xff1b;照顾者 保镖等近似含义&#xff1b;outstanding&#xff0c;outstanding work&#xff1a; 未完成的工作&#xff0c;backlog&#xff1a;n. [管理] 积压的…

JVM类加载机制_字节码执行引擎_Java内存模型

类加载机制: 类加载生命期:加载(Loading),验证(Verification),准备(Preparation),解析(Resolution),初始化(Initialization),使用(Using),卸载(Unloading)初始化:1.遇到new,getstatic,putstatic,invokestatic指令,类没有进行初始化,先触发初始化2.java反射机制3.初始化一个类,…

最新车载导航端口检测工具_高德地图这个功能 把微信都没做好的车载社交解决了?...

在汽车网联化和智能化带给人们的诸多想象里&#xff0c;车内社交似乎是最虚无缥缈的那个。在移动互联网领域&#xff0c;微信通过满足人们社交需求这个基本点&#xff0c;构建起庞大的用户群体&#xff0c;展示出巨大的市场前景。但在驾车场景下&#xff0c;车载社交该怎么玩&a…

王译潇20162314 第九周作业总结

学号 20162314 2016-2017-2 《Java程序设计》第九周学习总结 教材学习内容总结 数据库是为其他程序提供数据的应用软件 关系数据库通过唯一的标识符在不同表的记录间建立了关系 JDBC API用来建立到数据库的连接 CREATE TABLE SQL 语句用来创建新的数据库表 ALTER TABLE SQL 语句…

sketchup边线设置_春天花花天桥,SketchUp草图大师快速建模!

最近小吧在网上看到一座设计很特别的天桥&#xff0c;形状很像一朵花&#xff0c;名字也十分写实——春花天桥。喏&#xff0c;就是下面这个家伙&#xff01;图片来自网络春花天桥是2011年深圳举办大运会前夕投资建设的形象提升工程之一&#xff0c;在建设初期就被定位为地标性…

自言自语

随笔, 自我审视, 需要反思 最近这段时间, 各种艰难困苦早已将最初的激情冲刷地只剩下骨头了, 每天拖着疲惫的身子, 总是做着没有意义的事; 迷失了自我, 总把时间浪费, 而在做浪费时间的事却没有思考做这件事是否是有意义的, 是否是有价值的, 是否是在浪费时间; 没有思考, 就像行…

忧愁无处发

顶着好多方面的压力回家了....过得不好。。。。转载于:https://www.cnblogs.com/ysw6/p/6789910.html

python求直角三角形第三边公式_直角三角形已知两边求第三边公式

展开全部解&#xff1a;分两种情况讨论1、需要求的第三边为斜边时&#xff0c;第e69da5e887aa3231313335323631343130323136353331333433643030三边长度√a^2b^2 (ab分别为两直角边的长度)2、需要求的第三边为直角边时,第三边长度√c^2-a^2 (其中c为斜边,a为已知直角边)扩展资料…

android 7.1 apk的systemuid和系统应用Setting相同导致开机找不到库的问题

1、前言Android apk加载机制这就是我最近在解决的一个问题&#xff0c;32位的apk可以用32位的库&#xff0c;那64位的apk可以用64位的库&#xff0c;如果我想64位的apk同时使用32和64位的库呢&#xff1f;android加载so文件的机制apk在安装的过程中&#xff0c;系统就会对apk进…

Struts2_1_基础案例_配置文件详解_动作类

Struts2简要概述 三层架构中的表现层框架相对于常规的MVC模式, 其核心为Filter控制器内部的Filter实例是在客户端每发送一次就实例化一次, 相比于Servlet具有线程安全性内部控制器默认拦截以.action或无后缀名的url Struts2案例步骤 配置web.xml, 由于Struts2核心为Fiter, 所…

BZOJ 3362 Navigation Nightmare 带权并查集

题目大意&#xff1a;给定一些点之间的位置关系&#xff0c;求两个点之间的曼哈顿距离 此题土豪题。只是POJ也有一道相同的题&#xff0c;能够刷一下 别被题目坑到了&#xff0c;这题不强制在线。把询问离线处理就可以 然后就是带权并查集的问题了。。。将权值设为方向向量&…

怎样的人适合当码农?

1高中的时候&#xff0c;我一个友仔&#xff0c;他说要创办一个科技协会&#xff0c;然后跟我说电脑里面的代码都是0和1组成的&#xff0c;我现在还记得那天我们在学校开会的时候讨论电脑如何运行&#xff0c;我一脸痴呆的听他给我讲解电子知识&#xff0c;而且他后面自己做了一…

Struts2_2_解决配置文件冗余_动作类对象数据封装_数据类型转换_表单数据信息提示

Struts2第二天学习 解决struts.xml文件的冗余 将所有的配置文件放在一份struts.xml将会导致, 文件繁杂且容易出错, 将有如下的解决方案: 分文件编写Struts2的配置文件:对于具有类似功能的action就可以放入不同对应的xml文件中, 最后使用struts标签中的<include file"…

高版本号chrome安装flashplayer debuger后无法使用的问题

起因应该是苹果公司指出flash player的安全问题&#xff0c;还有各种原因导致google将在未来取消NPAPI的支持&#xff0c;所以fp们就悲剧了在高版本号chrome&#xff08;42以上&#xff09;默认是关闭外部安装的插件使用的&#xff0c; 所以在地址栏通过chrome://flags/#enable…

android 7.1 apk的systemuid [2]

1 上周发的一篇文章《android 7.1 apk的systemuid和系统应用Setting相同导致开机找不到库的问题》&#xff0c;然后有个小伙伴找我讨论了&#xff0c;觉得自己的脑洞了打开了很多&#xff0c;所以针对这个问题再次做一次总结&#xff0c;如果大家有好的建议也可以在文末留言。…

python连连看小游戏_python实现连连看游戏

编程一直是在课余时间&#xff0c;放假时间自学&#xff0c;到现在为止也有半年了。这是我自己用python实现的连连看&#xff0c;也是第一个完成的游戏&#xff0c;虽然极其简陋。思路呢&#xff0c;一开始是想要从一个点出发开始寻路&#xff0c;遇到数字就换一条路&#xff0…

Struts2_3_国际化处理_自定义拦截器_文件上传及下载_OGNL

Struts2国际化处理 浏览器根据当前的语言环境自动查找对应的语言环境资源包, 使jsp显示合适的语言数据环境 Struts2实现国际化, 动作类必须继承ActionSupport 创建资源包 资源包由多个properties文件组成, properties文件的文件名必须满足命名规范: 文件名_语言代码_国家代码…