Java 使用dom4j操作xml文档

                                                  Java 使用dom4j操作xml文档

一、简述

        记--使用dom4j-2.0.2操作xml文档。创建xml文档,读取数据,包括添加、修改、删除、读取数据。

二、效果

三、工程结构

四、源文件

       XmlTest.java文件

import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class XmlTest {

	//保存xml文档
	public static void saveXmlDocument(Document document) throws Exception {		
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("UTF-8");//设置编码
		String fileName = document.getName().replace("file:///", "");//file:///D:/Proj/MyEclipse85/XmlTest/test.xml
		//System.out.println(fileName);
		XMLWriter writer = new XMLWriter(new FileOutputStream(fileName), format);
		writer.write(document);
		writer.flush();
		writer.close();
	}
	
	public static void main(String[] args) {
		String fileName = "test.xml";
		try {

			File file = new File("test.xml"); 
			if(!file.exists())//文件不存在
			{
				// 创建test.xml
				Document newDocument = DocumentHelper.createDocument();
				
				//添加根节点
				Element root = newDocument.addElement("Fruits");
				
				//添加子节点
				Element elmentApple = root.addElement("Apple");
				elmentApple.addElement("describe").addText("红彤彤的苹果");
				elmentApple.addElement("price").addText("8元/斤");
				
				Element elmentOrange = root.addElement("Orange");
				elmentOrange.addElement("describe").addText("黄澄澄的橙子");
				elmentOrange.addElement("price").addText("6元/斤");
				
				Element elmentGrape = root.addElement("Grape");
				elmentGrape.addElement("describe").addText("酸酸的葡萄");
				elmentGrape.addElement("price").addText("10元/斤");
				
				newDocument.setName(fileName);//设置文档名称
				saveXmlDocument(newDocument);//保存到磁盘
				System.out.println("首次创建"+fileName);
			}
			else
			{
				SAXReader reader = new SAXReader();
				Document document = reader.read(new File(fileName));				
				Element rootNode = document.getRootElement();//获取根节点
				System.out.println(fileName+"的数据如下:");
				System.out.println("根节点:"+rootNode.getName());
				// 遍历子节点
				for (Iterator<?> iterator = rootNode.elementIterator(); iterator.hasNext();) {
					Element element = (Element)iterator.next();	
					String elementName = element.getName();
					System.out.println("  " + elementName);//获取节点名称
					int size = element.nodeCount();//获取子节点数目
					for (int i = 0; i < size; i++) {//遍历二层子节点
						Node nodeChild = element.node(i);
						String typeName = nodeChild.getName();
						if(typeName != null)
						{
							System.out.println("    "+typeName+":"+nodeChild.getText());
							
							//修改数据
							if(elementName.equals("Grape"))
							{
								if(typeName.equals("describe"))//修改描述
								{
									nodeChild.setText("又脆又甜的葡萄");
								}
								else if(typeName.equals("price"))//修改价格
								{
									nodeChild.setText("16元/斤");
								}
							}
						}
					}
					
					//删除数据
					if(elementName.equals("Orange"))
					{
						rootNode.remove(element);
					}					
				}
				
				//有改动数据就保存
				saveXmlDocument(document);
			}

		}catch (Exception e) {
			System.out.println("出现异常"+e.toString());
			e.printStackTrace();
		}

	}
}

五、总结

      5.1 下载dom4j-xxx.jar包

      网盘:链接: https://pan.baidu.com/s/1mt6Gg-49DEc0nvNMS8M1xw 提取码: uhgm

      网址:https://dom4j.github.io

      5.2 添加dom4j-2.0.2.jar包

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值