使用jdom对xml进行操作

本文介绍如何使用JDOM库对XML文件进行读取、修改及添加等操作。具体包括遍历XML文件并显示所有客户信息、删除指定客户的电子邮件、更改客户姓名以及在文件中增加新的客户信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求如下:

<?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包了.

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值