通过DOM4J对xml进行操作

本文详细介绍了如何使用DOM4J库进行XML操作,包括将节点写入XML文件、修改已有节点数据以及删除节点数据,为Java开发者提供了实用的XML处理指南。

通过DOM4J将一个node节点写入xml文件

private static void addStudent() {
		try {
			/****
			 * 通过dom4j将一个node节点写入到xml文件
			 */
			//创建SAXReader解析器对象
			SAXReader reader=new SAXReader();
			//加载studentes.xml
			Document doc=reader.read(DOM4jTest.class.
								getClassLoader().getResourceAsStream("studentes.xml"));
		    //获得doc的根节点对象
			Element root = doc.getRootElement();
			/***
			 * 修改doc表示的xml文件,修改内存中的数据
			 */
			//创建student节点对象,修改了内存中的doc树,给root节点添加了子节点
			Element student = root.addElement("student");
			//给student节点添加属性
			student.addAttribute("id", "120");
			//给student节点添加子节点
			Element name = student.addElement("name");
			name.setText("特朗普");
			Element sex = student.addElement("sex");
			sex.setText("男");
			Element age = student.addElement("age");
			age.setText("22");
			
			
			//创建Writer对象,指定文件
			FileWriter out= 
					new FileWriter("D:\\eclipse-work\\12_10_day19\\src\\studentes.xml");
			//创建OutputFormat实现数据写出的格式化
			OutputFormat format=new OutputFormat("\t", true);
			
			//创建XMLWriter对象,实现数据写入文件
			XMLWriter writer=new XMLWriter(out, format);
			writer.write(doc);
			writer.flush();
			writer.close();
			System.out.println("----------over----------");
		}catch(Exception ex) {
			ex.printStackTrace();
		}

通过DOM4J修改节点数据

public class DOM4jTest2 {

	public static void main(String[] args) throws DocumentException, IOException {
		//加载需要修改的文件
		SAXReader reader=new SAXReader();
		//加载xml文件
		Document doc = reader.read(DOM4jTest2.class
				.getClassLoader().getResourceAsStream("pet.xml"));
		//获得根节点
		Element root = doc.getRootElement();
		//获得root的子节点
		List<Element> elements = root.elements("pet");
		for(Element ele:elements) {
			String id = ele.element("id").getText();
			if(id.equals("111")) {
				ele.element("name").setText("aaaa");
			}
		}
		
		
		//创建Writer对象,指定文件
		FileWriter out= new FileWriter("src/pet.xml");
		//创建OutputFormat实现数据写出的格式化
		//OutputFormat format=new OutputFormat("\t", true);
		
		//XMLWriter writer=new XMLWriter(out,format);
		XMLWriter writer=new XMLWriter(out);
		writer.write(doc);
		writer.flush();
		writer.close();
		
	}

	 
}

通过DOM4J删除节点数据

public class DOM4jTest2 {

	public static void main(String[] args) throws DocumentException, IOException {
		 //创建SAXReader
		SAXReader reader=new SAXReader();
		//加载产生dom树
		Document doc = 
				reader.read(DOM4jTest2.class.getClassLoader().getResourceAsStream("pet.xml"));
		//获得root节点
		Element root = doc.getRootElement();
		
		//获得root的子节点
		List<Element> elements = root.elements("pet");
		
		for(Element ele:elements) {
			String id = ele.element("id").getText();
			if(id.equals("111")) {
				//删除某个节点
				root.remove(ele);
			}
		}
		//创建Writer对象,指定文件
		FileWriter out= new FileWriter("src/pet.xml");
		
		XMLWriter writer=new XMLWriter(out);
		writer.write(doc);
		writer.flush();
		writer.close();
		
	}

	 
}
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值