使用jdom对xml进行操作

jdom 操作XML实现增删改查 jdom 操作XML实现增删改查 jdom 操作XML实现增删改查 立即下载

要求如下:

<?xml version="1.0" encoding="GB2312"?>
<地址簿>
	<客户 性别="男">
		<姓名>吴孟达</姓名>
		<电子邮件>wuwengda@123.com</电子邮件>
	</客户>
	<客户 性别="女">
		<姓名>白晶晶</姓名>
		<电子邮件>baijingjing@345.com</电子邮件>
	</客户>
</地址簿>

①使用JDOM遍历这个XML文件,输出所有客户的信息,每个客户信息占一行,注意性别也要显示出来。
②把客户吴孟达的电子邮件删掉,注意是整个元素删掉,不是只清除内容,然后将更改后的文件保存到customs1.xml。
③把客户白晶晶的姓名改为白静静,将文件保存到更改后的customs2.xml。
④在customs.xml的文件中增加一个客户信息,信息如下:姓名:张三;性别:男;电子邮件:zhangsan@gmail.com

首先按要求建立customer.xml

<?xml version="1.0" encoding="GBK"?>
<地址簿>
	<客户 性别="男">
		<姓名>吴孟达</姓名>
		<电子邮件>wuwengda@123.com</电子邮件>
	</客户>
	<客户 性别="女">
		<姓名>白晶晶</姓名>
		<电子邮件>baijingjing@345.com</电子邮件>
	</客户>
</地址簿>

使用jdom对customer.xml按要求进行操做:

import org.jdom2.*;
import org.jdom2.input.*;
import org.jdom2.adapters.*;
import java.util.*;
import java.io.*;
import org.jdom2.output.*;
public class run
{
	
	public static void main(String [] args) 
	{
		try
		{
			run r = new run();
			r.showMessage();
			r.delete();
			r.alertName();
			r.add();
		}
		catch(Exception e)
		{
			System.out.println("运行错误");
		}
	}


	public void  showMessage()  throws Exception
	{
		Document doc = new Document();
		SAXBuilder saxb = new SAXBuilder();
		doc = saxb.build("customer.xml");
		Element e = doc.getRootElement();
		List list = e.getChildren();
		Element name;
		Element email;
		Element person;
		for(int i=0 ; i<list.size() ;  i++)
		{
			person = (Element)list.get(i);
			System.out.println("显示第" + (i+1) + "个客户信息:");
			String a = person.getAttribute("性别").getValue();
			name = person.getChildren().get(0);
			email = person.getChildren().get(1);
			String str_name = name.getText();
			String str_email = email.getText();
			System.out.println("性别:" + a + "    姓名:" + str_name + "    email:" + str_email);
		}
	}



	public  void  delete()  throws Exception  
	{
		Document doc = new Document();
		SAXBuilder saxb = new SAXBuilder();
		doc = saxb.build("customer.xml");
		Element e = doc.getRootElement();
		List list = e.getChildren();
		for(int i=0 ; i<list.size() ; i++)
		{
			e = (Element)list.get(i);
			if("吴孟达".equals(e.getChildren().get(0).getText()))  //下标从0开始
			{
				Element a = doc.getRootElement().getChildren().get(i).getChildren().get(1);
				e.removeContent(a);
			}
		}

		//写入xml
		XMLOutputter  outputter = new XMLOutputter();
		Format format = outputter.getFormat();
		format.setEncoding("GBK");
		format.setIndent("    ");
		outputter.setFormat(format);
		outputter.output(doc , new FileWriter("F:\\HelloWorld\\JavaEE\\Code\\shangJiShiYan\\shiYanEr\\diErTi\\code\\my.xml"));
		System.out.println("元素以删除");
	}


	public  void  alertName()  throws  Exception
	{
		Document doc = new Document();
		SAXBuilder saxb = new SAXBuilder();
		doc = saxb.build("customer.xml");
		Element e = doc.getRootElement();
		List list = e.getChildren();
		for(int i=0 ; i<list.size() ; i++)
		{
			e = (Element)list.get(i);
			if("白晶晶".equals(e.getChildren().get(0).getText()))  //下标从0开始
			{
				e.getChildren().get(0).setText("白静静");
			}
		}

		//写入xml
		XMLOutputter  outputter = new XMLOutputter();
		Format format = outputter.getFormat();
		format.setEncoding("GBK");
		format.setIndent("    ");
		outputter.setFormat(format);
		outputter.output(doc , new FileWriter("F:\\HelloWorld\\JavaEE\\Code\\shangJiShiYan\\shiYanEr\\diErTi\\code\\白静静.xml"));
		System.out.println("白静静姓名已更改");
	}


	public  void add()  throws Exception
	{
		Element e = new Element("客户");
		e.setAttribute("性别" , "男");
		Element name = new Element("姓名"); //创建的元素名就是姓名
		name.setText("张三");
		e.addContent(name);
		Element email = new Element("电子邮件");
		email.setText("④zhangsan@gmail.com");
		e.addContent(email);


		Document doc = new Document();
		SAXBuilder saxb = new SAXBuilder();
		doc = saxb.build("customer.xml");
		Element root = doc.getRootElement();
		root.addContent(e);


		//写入xml
		XMLOutputter  outputter = new XMLOutputter();
		Format format = outputter.getFormat();
		format.setEncoding("GBK");
		format.setIndent("    ");
		outputter.setFormat(format);
		outputter.output(doc , new FileWriter("F:\\HelloWorld\\JavaEE\\Code\\shangJiShiYan\\shiYanEr\\diErTi\\code\\add.xml"));
		System.out.println("元素已添加,在add.xml文件里查看");
	}
}

这里需要注意,下载jdom包后,将其解压,得到 jdom-2.0.6(类似的)jar包,然后将jar包解压.的到的org目录就是import语句里的org包了.

然后就可以使用导入语句导入了.

 

利用jdom操作xml文档 利用jdom对xml文档进行操作,比如读写,删除等,我当时编码的时候找到的,比较详细,希望对大家有用。 立即下载

相关推荐

jdom解析xml(创建,添加,修改,解析)

jdom对xml进行创建,属性添加,属性修改,解析

JDOM 操作XML

可扩展标记语言——eXtensible Markup Language 用户可以自己定义语言标记,只要有开始和闭合标签即可。 xsl装饰、修饰xml的显示结果。 dtd约束xml文件中的标记。 Ø XML的优点:     1、xml可以让数据和标记分离。     2、异质信息互通     3、机器语言     4、用交流语言替代html装饰语言     5、简单易用     6...

weixin_34291004的博客 189

『言善信』Fiddler工具 — 1、Fiddler介绍与安装

文章目录1、Fiddler简介2、Fiddler功能3、Fiddler工作原理4、Fiddler安装 1、Fiddler简介 Fiddler是强大的抓包工具之一,它能记录所有客户端和服务器之间的HTTP和HTTPS请求,是web调试的利器。 Fiddler是位于客户端和服务端之间的HTTP代理,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。 Fiddler可以抓取支持HTTP代理的任意程序的数据包,如果要抓取https会

繁华似锦Fighting 1469

java解析xml之二:使用JDOM

一.简介     JDOM是一种解析XML的Java工具包。 它由Breet Mclaughlin和Jason Hunter在2000年初作为一个开放源代码项目正式开始研发。DOM适合于当今流行的各种语言,包括Java,JavaScripte,VB,VBScript,Perl,C,C++等。它了为HTML和XML文档提供了一个可应用于不同平台的编程接口。 DOM的设计为了适用于不同的语言,它保留了...

理论与实践并重 算法与技术齐飞 201

Android开发中StateFlow与LiveData的5个关键区别及实战避坑指南

本文深度解析了Android开发中StateFlow与LiveData的5个核心区别,包括设计哲学、生命周期管理、值更新策略、线程模型及协程生态整合。通过实战代码对比,为开发者在现代MVVM架构下的状态管理选型提供清晰的决策指南和避坑建议,帮助构建更健壮、可测试的应用。

weixin_29012677的博客 403

深入解析FOC电流环PI参数整定:从理论到实践

本文深入解析了FOC(磁场定向控制)中电流环PI参数整定的核心原理与实践方法。文章从永磁同步电机模型出发,详细阐述了基于带宽与零极点对消的工程法及考虑逆变器延迟的二阶系统整定法两种经典策略,并提供了从理论计算到安全上电调试的完整步骤与常见问题解决方案,帮助工程师精准调校电机控制性能。

weixin_29164497的博客 451

jdom操作xml

jdom操作xml: 解析过程:           //创建解析器            SAXBuilder buil=new SAXBuilder();            //加载xml文件,返回的是Document对象            Document doc;            try {                 doc = buil.bu

不会飞的菜鸟的博客 471

DRV8870电机驱动芯片原理与嵌入式多平台驱动开发

H桥电机驱动芯片是直流电机控制的核心硬件模块,其通过双MOSFET拓扑实现方向与速度的精确调控。工作原理基于电荷泵自举驱动、集成电流检测及多重硬件保护机制,技术价值体现在高集成度、宽压适配(4.5V–45V)与强鲁棒性。典型应用场景涵盖智能机器人执行器、工业自动化设备及电池供电移动终端。本文围绕DRV8870这一主流驱动芯片,深入解析其PH/EN与Dual PWM双控制模式、nFAULT故障响应机制,并结合Arduino/ESP32/STM32三大平台,提供可复用的跨MCU驱动库设计范式与FreeRTOS实

weixin_32251525的博客 657

java jdom 创建xml_【java开发系列】—— JDOM创建、修改、删除、读取XML文件

有很多中操作XML文件的方法,这里介绍一下JDOM的使用方法和技巧。创建XML文档XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点。而每个子元素都是一个Element对象,对象可以向下包含。1 因此我们可以通过先创建元素再将元素添加到父元素中,最后将顶层元素添加到根元素中。2创建完文档元素后,就可以把元素添加到document对象中,然后写入文件。主要使用的函数:...

weixin_39532352的博客 280

python基础:工作会用到的95%的基础python代码都在这了(万字详解!)

本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。

数据知道的博客 8160

使用CUDA进行按流排序的内存分配的示例程序

在GPU编程中,按流排序的内存分配是一种常见的优化技术,它可以提高内存访问的效率。通过将内存分配与特定的CUDA流相关联,可以确保在GPU上的并发操作期间,内存分配操作与其他GPU计算操作同时进行,从而减少了潜在的内存访问延迟。请注意,上述示例中的代码仅供参考,并可能需要根据实际需求进行修改和调整。此外,为了完整性,我们省略了一些细节,例如主机指针的分配和释放,以及错误处理和错误检查等。在该示例中,我们创建了4个CUDA流,并使用内存池进行内存分配。然后,我们在每个流上执行了相应的内存访问操作,并使用。

Byte_O_O的博客 282

利用JDOM操作XML文件

本文介绍如何通过JDOM来操作XML文件。主要包括对XML文件的增删改查等操作,具体详见代码部分注释,该方法可以满足大部分对XML文件的操作。首先展示一张XML文件的最终效果图: 代码如下: package com.zys.util; import java.io.FileInputStream; import java.io.FileOutputStream; import j

zys_1997的博客 906

把 SAP Activate 六个阶段看透:从项目落地到 SAP BTP 扩展与 AI 运营的一体化实践

摘要: SAP Activate 方法论常被误解为简单的项目阶段划分,实则是一套将业务目标、标准流程、系统配置和持续运营串联的实施控制体系。其六个阶段(Discover至Run)构成价值递进的实施通道,核心交付集中在Prepare到Deploy阶段。Discover阶段通过DDA评估确立项目方向与范围,Prepare阶段聚焦可执行性准备,Explore阶段采用Fit-to-Standard工作坊进行需求分层,Realize阶段基于前期决策进行配置与扩展开发。该方法论强调标准化优先,差异化需求通过SAP BT

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2332

JDOM操作XML

可扩展标记语言——eXtensible Markup Language 用户可以自己定义语言标记,只要有开始和闭合标签即可。 xsl装饰、修饰xml的显示结果。 dtd约束xml文件中的标记。 Ø XML的优点:     1、xml可以让数据和标记分离。     2、异质信息互通     3、机器语言     4、用交流语言替代html装饰语言

u011608025的专栏 459

AI编码规则:从提示工程到自动化,提升大模型生成代码质量

在软件工程领域,代码质量是保障软件可维护性、安全性和团队协作效率的核心。其背后遵循着从基础语法规范到架构设计原则的一系列工程实践。随着大语言模型(LLM)在代码生成任务中的广泛应用,如何确保AI生成的代码符合这些工程标准,成为一个关键的技术挑战。这涉及到将人类工程师积累的最佳实践,转化为机器可理解、可执行的明确约束。通过系统化的**编码规则**定义与集成,例如构建涵盖安全、风格、架构的多层次规则集,并将其融入**提示工程**或自动化工作流,可以显著引导AI产出更健壮、规范的代码。这种方法的价值在于,它能将模

weixin_42525189的博客 643

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java jdom 设置第1行_使用JDOM操作XML

JDOM介绍JDOM是使用Java语言编写的,用于读写及操作XML的一套组件,Jdom同时具有DOM修改文件的优点和SAX读取快速的优点。JDOM的使用首先下载JDOM的JAR包,本文使用的是jdom-2.0.5,下载地址:http://download.youkuaiyun.com/detail/onroads/9719611在工程目录下新建一个lib文件夹,将下载的jar包中的jar文件拷贝到lib文件夹...

weixin_34447182的博客 189

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JDOM 操作XML(比较全)

 可扩展标记语言——eXtensible Markup Language  用户可以自己定义语言标记,只要有开始和闭合标签即可。  xsl装饰、修饰xml的显示结果。 dtd约束xml文件中的标记。 Ø XML的优点:     1、xml可以让数据和标记分离。     2、异质信息互通     3、机器语言     4、用交流语言替代html装饰语言     5...

五月天的博客 174

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Jdom 操作XML

可扩展标记语言——eXtensible Markup Language 用户可以自己定义语言标记,只要有开始和闭合标签即可。 xsl装饰、修饰xml的显示结果。 dtd约束xml文件中的标记。 Ø XML的优点:     1、xml可以让数据和标记分离。

hoojo 2043

Java Jdom操作XML

依赖注入: <dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>2.0.2</version> </dependency> 读...

haoranhaoshi的博客 186

jdom 操作xml

JDOM 对Xml文件(增、删、改、查) package bean; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream

mengfaxu的专栏 443

jdom操作xml Demo

感觉学一个东西经常容易忘代码,在此一个jdom的大Demo集合,以此备忘! import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; impor

u014793936的专栏 457

用JDOM操作XML文件

2009年12月09日 00时00分 JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。 Java + XML = JDOM ! JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。 Jd...

ajh42238的博客 183
上一篇: 使用java控制台和sqlServer数据库实现对客户表的操作
下一篇: hibernate的一些小知识点梳理
libingbojava
博客等级 码龄9年 64粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值