java小作业(十五)

这篇博客介绍了使用Java进行XML文件操作的实例,包括创建XML文件User,读取并显示所有姓名,修改特定节点(如将张三改为007),添加新数据(如李四的信息),以及删除满足条件的数据(性别为女)。
摘要由CSDN通过智能技术生成

1.将以下信息写入一个名字为User的xml文件中
             001     23岁              男                        张三                               1383838438
             002     24岁             女                         李美丽                          1393939439
             003     25岁              男                           王五                             1585858598  

package com.sj.homework;

import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class XieRu {

	public static void xieRu(String path, Document document) throws IOException {
		//格式化写入
		OutputFormat format = OutputFormat.createCompactFormat();//
		format.setEncoding("UTF-8");//设定编码格式
		FileWriter writer = new FileWriter(path);//构建path路径下的写入流
		XMLWriter xmlWriter = new XMLWriter(writer);//写入
		xmlWriter.write(document);//写入
		xmlWriter.close();//关闭
		writer.close();//关闭
	}
	
}
package com.sj.homework;

import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

/**
 * @desc	将以下信息写入一个名字为User的xml文件中
             001     23岁              男                        张三                               1383838438
             002     24岁             女                         李美丽                          1393939439
             003     25岁              男                           王五                             1585858598  
 * @author  ws
 * @time	8.11
 */
public class Test {
	public static void main(String[] args) throws IOException {
	//创建
		Document document = DocumentHelper.createDocument();//创建一个文档对象
		Element rootElement = document.addElement("student");//创建跟元素
		setStudent(rootElement, "001", "23", "男", "张三", "1383838438");
		setStudent(rootElement, "002", "24", "女", "李美丽", "1393939439");
		setStudent(rootElement, "003", "25", "男", "王五", "1585858598");
		//设定格式化输出标准
		OutputFormat format = new OutputFormat();
		format.setEncoding("UTF-8");//设定输出内容的编码格式
	//写入:其实是一个io操作
		String path = "E:/User.xml";
		XieRu xie = new XieRu();
		xie.xieRu(path, document);
		System.out.println("写入成功");
	}
	public static void setStudent(Element rootElement,String num,String age,String sex,String name,String tel){
		Element stuElement = rootElement.addElement("stu");//通过根元素创建子元素
		//给子元素添加属性
		stuElement.addAttribute("id", num);
		//子元素套子元素,并写入文本值
		stuElement.addElement("age").setText(age+"岁");
		stuElement.addElement("sex").setText(sex);
		stuElement.addElement("name").setText(name);
		stuElement.addElement("tel").setText(tel);
	}
}


2.从User.xml文件中将所有人的姓名展示出来

package com.sj.homework;

import java.io.File;
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.io.SAXReader;

/**
 * @desc	2.从User.xml文件中将所有人的姓名展示出来
 * @author  ws
 * @time	8.11
 */
public class Test2 {
	public static void main(String[] args) throws DocumentException {
		String path = "E:/User.xml";//文件存放的路径
		File file = new File(path);//将该路径下的文件加入到内存中
		SAXReader reader = new SAXReader();//初始化dom4j中jar包中的用来解析xml的核心类
		Document document = reader.read(file);//通过reader对象的read()方法去读取已经加入到内存中的文件,且结果是返回一个文档对象(document)
		
		Element roootElement = document.getRootElement();//通过文档获取到根元素
		
		Iterator<Element> it = roootElement.elementIterator();//跟元素迭代器
		while (it.hasNext()) {
			Element everyElement = it.next();//everyElement是每个stu
			List<Element> stu = everyElement.elements();
			Iterator<Element> it2 = stu.iterator();
			while (it2.hasNext()) {
				Element message = it2.next();//message是stu里面的子元素
				if (message.getName().equals("name")) {
					System.out.println("姓名:"+message.getText());
				}
			}
		}
	}

}


3.将User.xml中的张三名字改为   "007"

package com.sj.homework;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
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.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

/**
 * @desc	3.将User.xml中的张三名字改为   "007"
 * @author  ws
 * @time	8.11
 */
public class Test3 {
	public static void main(String[] args) throws DocumentException, IOException {
		
		String path = "E:/User.xml";//文件存放的路径
		File file = new File(path);//将该路径下的文件加入到内存中
		SAXReader reader = new SAXReader();//初始化dom4j中jar包中的用来解析xml的核心类
		Document document = reader.read(file);//通过reader对象的read()方法去读取已经加入到内存中的文件,且结果是返回一个文档对象(document)
		
		Element roootElement = document.getRootElement();//通过文档获取到根元素
		
		Iterator<Element> it = roootElement.elementIterator();//迭代器
		while (it.hasNext()) {
			Element everyElement = it.next();//everyElement是每个stu
			List<Element> stu = everyElement.elements();
			Iterator<Element> it2 = stu.iterator();
			while (it2.hasNext()) {
				Element message = it2.next();//message是stu里面的子元素
				if (message.getName().equals("name")) {
					if (message.getText().equals("张三")) {
						message.setText("007");//修改文本值
						System.out.println("修改成功");
					}
				}
			}
		}
		
		//格式化写入
		XieRu xie = new XieRu();
		xie.xieRu(path, document);
		System.out.println("修改成功");
	}

}


4.向User.xml中添加一条数据信息,内容如下
            004    26岁                  男                         李四                                  1343434394

package com.sj.homework;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

/**
 * @desc	4.向User.xml中添加一条数据信息,内容如下
            004    26岁                  男                         李四                                  1343434394
 * @author  ws
 * @time	8.11
 */
public class Test4 {
	public static void main(String[] args) throws DocumentException, IOException {
		//找到给那个路径下的文件添加
		String path = "E:/User.xml";
		File file = new File(path);
		SAXReader reader = new SAXReader();
		Document document = reader.read(file);
		
		//添加数据
		Element rootElement = document.getRootElement();//跟元素
		Element stuElement = rootElement.addElement("stu");//子元素
		//给子元素设定属性值
		stuElement.addAttribute("id", "004");
		//子元素套子元素,并写入文本值
		stuElement.addElement("age").setText("26岁");
		stuElement.addElement("sex").setText("男");
		stuElement.addElement("name").setText("李四");
		stuElement.addElement("tel").setText("1343434394");
		
		//格式化写入
		XieRu xie = new XieRu();
		xie.xieRu(path, document);
		System.out.println("添加成功");
	}

	

}


5.将User.xml文件中的性别为女的那一条数据删除   

package com.sj.homework;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
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.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

/**
 * @desc	5.将User.xml文件中的性别为女的那一条数据删除   
 * @author  ws
 * @time	8.11
 */
public class Test5 {
	public static void main(String[] args) throws DocumentException, IOException {
		//找到给那个路径下的文件添加
		String path = "E:/User.xml";
		File file = new File(path);
		SAXReader reader = new SAXReader();
		Document document = reader.read(file);
		Element rootElement = document.getRootElement();//跟元素
		
		Iterator<Element> it = rootElement.elementIterator();
		while (it.hasNext()) {
			Element everyElement = it.next();//everyElement是每个stu
			List<Element> stu = everyElement.elements();
			Iterator<Element> it2 = stu.iterator();
			while (it2.hasNext()) {
				Element message = it2.next();//message是stu里面的子元素
				if (message.getName()=="sex") {
					if (message.getText().equals("女")) {
						it.remove();//删除性别为女的整个信息
						System.out.println("删除成功");
					}
				}
			}
		}
		
		//格式化写入
		XieRu xie = new XieRu();
		xie.xieRu(path, document);
		System.out.println("删除成功");
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值