java dom4j 添加节点_Java dom4j获取,添加,删除,查找,设置Element节点方法「建议收藏」

java dom4j 添加节点_Java dom4j获取,添加,删除,查找,设置Element节点方法「建议收藏」Javadom4j获取,添加,删除,查找,设置Element节点方法1.获取文档的根节点.ElementrootElm=document.getRootElement();2.取得某节点的单个子节点.ElementmemberElm=root.element(“member”);//”member”是节点名3.取得节点的文字Stringtext=memberElm.getText()…

大家好,又见面了,我是你们的朋友全栈君。

Java dom4j获取,添加,删除,查找,设置Element节点方法

1.获取文档的根节点.

Element rootElm = document.getRootElement();

2.取得某节点的单个子节点.

Element memberElm=root.element(“member”);// “member”是节点名

3.取得节点的文字

String text=memberElm.getText();//也可以用:

String text=root.elementText(“name”);//这个是取得根节点下的name字节点的文字.

4.取得某节点下名为”member”的所有字节点并进行遍历.

List nodes = rootElm.elements(“member”);

for (Iterator it = nodes.iterator(); it.hasNext();) {

Element elm = (Element) it.next();

// do something

}

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

for(Iterator it=root.elementIterator();it.hasNext();){

Element element = (Element) it.next();

// do something

}

6.在某节点下添加子节点.

Element ageElm = newMemberElm.addElement(“age”);

7.设置节点文字.

ageElm.setText(“29”);

8.删除某节点.

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

9.添加一个CDATA节点.

Element contentElm = infoElm.addElement(“content”);

contentElm.addCDATA(diary.getContent());

例子

public void modifyDoc() {

try {

Document doc = reader.read(new File(“file/catalog.xml”));

//修改节点内容

List list = doc.selectNodes(“//article”);

Iterator it = list.iterator();

while (it.hasNext()) {

Element el = it.next();

fail(el.getName() + “#” + el.getText() + “#” + el.getStringValue());

//修改title元素

Iterator 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(“//article/author”);

it = list.iterator();

while (it.hasNext()) {

Element el = it.next();

fail(el.getName() + “#” + el.getText() + “#” + el.getStringValue());

List 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/catalog-modified.xml”)));

output.write(doc);

output.close();*/

} catch (DocumentException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159413.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月14日 下午11:46
下一篇 2022年7月15日 上午6:00


相关推荐

  • mysql数据库数据迁移操作「建议收藏」

    mysql数据库数据迁移操作「建议收藏」1.新建一个需要迁移的数据库2.进行数据迁移迁移步骤:1.工具–>点击数据传输,选择需要被导的数据库,和导入的数据库看到了吗以及导入成功了

    2022年7月3日
    32
  • 面向对象和面向过程的区别理解_c是面向对象还是面向过程

    面向对象和面向过程的区别理解_c是面向对象还是面向过程一、面向对象和面向过程面向对象面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程,数据和对数据的操作是分离的,函数本身只

    2022年8月16日
    7
  • redis中RDB和AOF的区别

    redis中RDB和AOF的区别1 前言最近在项目中使用到 Redis 做缓存 方便多个业务进程之间共享数据 由于 Redis 的数据都存放在内存中 如果没有配置持久化 redis 重启后数据就全丢失了 于是需要开启 redis 的持久化功能 将数据保存到磁盘上 当 redis 重启后 可以从磁盘中恢复数据 redis 提供两种方式进行持久化 一种是 RDB 持久化 原理是将 Reids 在内存中的数据库记录定时 dump 到磁盘上的 RDB 持久化 另外一

    2026年3月19日
    2
  • 信号传输中的振铃

    信号传输中的振铃由于任何传输线都不可避免地存在着引线电阻 引线电感和杂散电容 因此 一个标准的脉冲信号在经过较长的传输线后 极易产生上冲和振铃现象 大量的实验表明 引线电阻可使脉冲的平均振幅减小 而杂散电容和引线电感的存在 则是产生上冲和振铃的根本原因 在脉冲前沿上升时间相同的条件下 引线电感越大 上冲及振铃现象就越严重 杂散电容越大 则是波形的上升时间越长 而引线电阻的增加 将使脉冲振幅减小 如果信号传

    2026年3月17日
    2
  • python 报错”UnicodeDecodeError: ‘utf-8’ codec can’t decode byte”的解决办法

    python 报错”UnicodeDecodeError: ‘utf-8’ codec can’t decode byte”的解决办法最近写了一个 Python 小程序 用来统计 三国演义 中人物出场次数的 从网上下载一个 三国演义 txt 的文件 但是后来程序运行时出现以下报错 UnicodeDecod utf 8 codeccan tdecodebyte0 invalidstart 后来经过不断查找终于找到了解决办法 由于我在程序中设定文件打开的

    2026年3月17日
    2
  • javasdk 安装以及环境配置

    javasdk 安装以及环境配置第一步 下载 JavaJDK 1 登录官网站下载正版 JDK 2 点击 SDKDownload 进入 JavaJDK 下载页面 注明 JavaJDK 和 JavaJRE 区别 JavaJDK 就是 JavaDevelopm 简单的说 JDK 是面向开发人员使用的 SDK 它提供了 Java 的开发环境和运行环境 JavaJR

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号