Java如何使用dom4j获取,添加,删除,查找,设置Element节点呢?

2023-11-10

转自:

Java如何使用dom4j获取,添加,删除,查找,设置Element节点呢?

下文笔者讲述DOM4J操作Element节点的示例分享,如下所示

获取文档的根节点

Element rootElm = document.getRootElement(); 

取得某节点的单个子节点

Element memberElm=root.element("user");// "user"是节点名

取得节点的文字

String text=memberElm.getText();//也可以用:
String text=root.elementText("name");//这个是取得根节点下的name字节点的文字.

取得某节点下名为"user"的所有字节点并进行遍历

List nodes = rootElm.elements("user"); 
for (Iterator it = nodes.iterator(); it.hasNext();) { 
  Element elm = (Element) it.next(); 
  //运行业务代码
} 

对某节点下的所有子节点进行遍历

for(Iterator it=root.elementIterator();it.hasNext();){ 
  Element element = (Element) it.next(); 
   //业务代码
} 

在某节点下添加子节点

Element ageElm = newMemberElm.addElement("age");

设置节点文字

ageElm.setText("88"); 

删除某节点

parentElm.remove(childElm);// childElm是待删除的节点,parentElm是其父节点 

添加一个CDATA节点

Element contentElm = infoElm.addElement("content");
contentElm.addCDATA(diary.getContent());

public void modifyDoc() {
    try {
        Document doc = reader.read(new File("file/test.xml"));
        //修改节点内容
        List list = doc.selectNodes("//user");
        Iterator<Element> it = list.iterator();
        while (it.hasNext()) {
            Element el = it.next();
            fail(el.getName() + "#" + el.getText() + "#" + el.getStringValue());
            //修改title元素
            Iterator<Element> elIter = el.elementIterator("title");
            while(elIter.hasNext()) {
                Element titleEl = elIter.next();
                fail(titleEl.getName() + "#" + titleEl.getText() + "#" + titleEl.getStringValue());
                if ("Java configuration with XML Schema".equals(titleEl.getTextTrim())) {
                    //修改元素文本值
                    titleEl.setText("Modify the Java configuration with XML Schema");
                    fail(titleEl.getName() + "#" + titleEl.getText() + "#" + titleEl.getStringValue());
                }
            }
        }
        
        //修改节点子元素内容
        list = doc.selectNodes("//user/author");
        it = list.iterator();
        while (it.hasNext()) {
            Element el = it.next();
            fail(el.getName() + "#" + el.getText() + "#" + el.getStringValue());
            List<Element> childs = el.elements();
            for (Element e : childs) {
                fail(e.getName() + "#" + e.getText() + "#" + e.getStringValue());
                if ("Marcello".equals(e.getTextTrim())) {
                    e.setText("Ayesha");
                } else if ("Vitaletti".equals(e.getTextTrim())) {
                    e.setText("Malik");
                } 
                fail(e.getName() + "#" + e.getText() + "#" + e.getStringValue());
            }
        }
        
        //写入到文件
        /*XMLWriter output = new XMLWriter(new FileWriter(new File("file/test.xml")));
        output.write(doc);
        output.close();*/
    } catch (DocumentException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java如何使用dom4j获取,添加,删除,查找,设置Element节点呢? 的相关文章

随机推荐

  • 铨顺宏智能RFID图书管理应用

    一 RFID图书管理应用背景 铨顺宏智能RFID图书档案管理应用 图书借还 快速盘点 查找 乱架图书整理等问题一直困扰着图书馆的管理及工作人员 铨顺宏通过图书馆的RFID系统建设 将简化读者的借阅流程 提高流通效率 大幅度降低图书清点和查找
  • pyecharts图表库学习:Bar(柱状图/条形图)、Bar3D(3D 柱状图)

    柱状 条形图 通过柱形的高度 条形的宽度来表现数据的大小 Bar add 方法签名 add name x axis y axis is stack False bar category gap 20 kwargs name gt str 图
  • C语言函数大全-- x 开头的函数(1)

    x 开头的函数 1 1 xdr accepted reply 1 1 函数说明 1 2 演示示例 1 2 1 accepted reply 1 2 2 Test c 2 xdr array 2 1 函数说明 2 2 演示示例 3 xdr a
  • 第四届蓝桥杯JavaB组省赛- 有理数类

    第四届蓝桥杯JavaB组省赛 有理数类 题目描述 有理数就是可以表示为两个整数的比值的数字 一般情况下 我们用近似的小数表示 但有些时候 不允许出现误差 必须用两个整数来表示一个有理数 这时 我们可以建立一个 有理数类 下面的代码初步实现了
  • Linux系统报错NMI watchdog: BUG: soft lockup - CPU#5 stuck for 24s

    目录 一 问题描述 二 解决方法 1 将 watchlog thresh 临时设置为 30 2 将 watchlog thresh 永久设置为 30 3 将 watchlog thresh 写入启动文件 一 问题描述 Linux 系统响应变
  • Wce中的source文件中的RELEASETYPE类型

    1 E WINCE600 PLATFORM EAuto657t Src Media au1300 wince subproject sources RELEASETYPE LOCAL 2 E WINCE600 PLATFORM EAuto6
  • 【STM32Cube】学习笔记(五):红外避障传感器

    文章目录 摘要 一 简介 1 GPIO简介 2 红外避障传感器 3 性能参数 二 硬件电路设计 1 模块内部电路 2 与单片机相连接电路 三 软件设计 1 CubeMX配置 2 CubeIDE代码 四 结果显示 五 总结 附录 摘要 本篇文
  • FastJson序列化null值问题

    在使用fastjson进行序列化时 他默认当字段为null时是不会序列化这个字段的 当你需要将null序列化出来时 可以用 JSONField的serialzeFeatures属性加在字段上 JSONField serialzeFeatur
  • python 正则提取邮箱_python利用正则表达式提取字符串

    前言 正则表达式的基础知识就不说了 有兴趣的可以点击这里 提取一般分两种情况 一种是提取在文本中提取单个位置的字符串 另一种是提取连续多个位置的字符串 日志分析会遇到这种情况 下面我会分别讲一下对应的方法 一 单个位置的字符串提取 这种情况
  • 计算机文档保存了在文件夹中找不到,word文档保存后找不到了如何解决

    word文档保存后找不到了如何解决 腾讯视频 爱奇艺 优酷 外卖 充值4折起 相信很多小伙伴都在使用Word软件来编辑文档 在使用的过程中 总会遇到这样那样的问题 今天就跟大家介绍一下word文档保存后找不到了的具体解决方法 1 打开电脑上
  • 一个TCP长连接设备管理后台工程(六)---封包器与处理器

    封包器 上面介绍了过滤器 过滤器实际就是一个能够处理粘包和拆包的解析器 和封包器的作用正好相反 但是封包器会很简单 因为封包没有粘包和拆包的处理 代码如下 Packer is proto Packer api func Packer msg
  • autocomplete实现原理

    autocomplete实现原理主要用在input 和 textarea这两个标签上 为这标签增加键盘监听事件和提示列表添加鼠标事件 例如 input的id为txt 为input增加键盘监听事件 keyup var mindex 1 txt
  • postman使用教程——接口测试

    Postman 之前是作为Chrome 的一个插件 现在要下载应用才能使用 以下是postman 的界面 各个功能区的使用如下 快捷区 快捷区提供常用的操作入口 包括运行收藏夹的一组测试数据 导入别人共享的收藏夹测试数据 Import fr
  • 程序设计和C语言

    TOC程序设计和C语言 1 什么是计算机程序 一组计算机能够识别和执行的指令 计算机本质就是程序的机器 2 什么是计算机预言 机器指令 计算机能直接识别和接受的二进制代码 机器语言 机器指令的集合 符号语言 又称为汇编语言 计算机的低级语言
  • 新手月入10k很难?方法是关键!写给迷茫的测试从业者!

    关于软件测试行业前景 行业薪资 一直都是准备转行 刚刚入行甚至是在职一 两年的朋友密切关注的问题 毕竟这关系着自己未来的 钱途 也决定着自己的职业发展路线 那软件测试员 究竟该如何规划职业发展之路 如何才能月薪过万 作为过来人 分享一下我的
  • yarn清理缓存命令

    1 查看yarn全局缓存目录 yarn cache dir 2 清除缓存 yarn cache clean
  • 服务器安装文件共享软件权限,服务器共享文件权限

    服务器共享文件权限 内容精选 换一换 文件系统创建完成后 用户需在客户端挂载文件共享 在本地共享目录和CSG的文件共享建立映射 通过操作本地的目录实现对CSG共享目录的操作 实现数据实时上云管理 本章节主要介绍在Windows Server
  • 面试了30多家大厂后,整合出这份1658 页《Java 面试突击核心讲》

    面试神技 主要包含 Java 基础 JVM 多线程 MySQL Spring SpringBoot SpringCloud 分布式 Dubbo Mybatis Redis 网络 Linux MQ Zookeeper Netty 大数据 算法
  • 面试系列之JVM

    说说JVM的内存模型 方法区 存储已被虚拟机加载的类信息 常量 静态变量 即时编译后的代码等数据 堆 存放对象实例 几乎所有的对象实例都要在堆上分配 程序计数器 当前线程所执行的字节码的行号指示器 虚拟机栈 描述的是Java方法执行的内存模
  • Java如何使用dom4j获取,添加,删除,查找,设置Element节点呢?

    转自 Java如何使用dom4j获取 添加 删除 查找 设置Element节点呢 下文笔者讲述DOM4J操作Element节点的示例分享 如下所示 获取文档的根节点 Element rootElm document getRootEleme