java中对xml的读取和写入

java对xml操作需导入dom4j的jar包(如下):

(解析)读取xml:

package com.rj.bd.xml.jx;

import java.io.File;
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	解析xml文件
 * @author	ws
 * @time	2018-10-9
 */
public class LianXi01 {
	public static void main(String[] args) throws DocumentException {
		String pathname = "E:/xml/ren.xml";
		File file = new File(pathname);
		if (file.isFile() && file.exists()) {
			System.out.println("文件存在");
			//获取文档
			SAXReader reader = new SAXReader();
			Document document = reader.read(file);
			System.out.println(document.asXML());//输出document
			//获取根元素
			Element rootE = document.getRootElement();
			System.out.println("根元素名称:"+rootE.getName());//输出根元素名字
			//获取根元素属性
			List<Attribute> rootA = rootE.attributes();//根元素属性存list并指定泛型为dom4j的Attribute接口
			for (Attribute eveRootA : rootA) {
				System.out.println("根元素属性:"+eveRootA.getName()+"\t"+eveRootA.getValue());//输出根元素属性的属性名和属性值
			}
			//获取根元素的子元素
			List<Element> ziE = rootE.elements();//指定泛型为Element
			for (Element eveZiE : ziE) {
				System.out.println("子元素名称:"+eveZiE.getName());
				List<Attribute> ziA = eveZiE.attributes();
				for (Attribute eveZiA : ziA) {
					System.out.println("子元素属性:"+eveZiA.getName()+"\t"+eveZiA.getValue());
				}
				//获取子元素中的子元素
				List<Element> ziZiE = eveZiE.elements();
				for (Element eveZiZiE : ziZiE) {
					System.out.println("子元素的子元素的名称和文本值:"+eveZiZiE.getName()+"\t"+eveZiZiE.getText());
					List<Attribute> ziZiA = eveZiZiE.attributes();
					for (Attribute eveZiZiA : ziZiA) {
						System.out.println("子元素的子元素的属性:"+eveZiZiA.getName()+"\t"+eveZiZiA.getValue());
					}
				}
			}
			
		}
	}
}

 

写入xml:

package com.rj.bd.xml.xr;

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	xml的写入	
 * @author	ws
 * @time	2018-10-9
 */
public class LianXi01 {
	public static void main(String[] args) throws IOException {
		//创建一个document对象
		Document document = DocumentHelper.createDocument();
		//加入根元素
		Element rootE = document.addElement("people");
		//加入根元素属性
		rootE.addAttribute("name", "Lily");
		rootE.addAttribute("sex", "Women");
		//加入子元素
		Element zuoYan = rootE.addElement("eyes");
		Element youYan = rootE.addElement("eyes");
		//子元素加属性和文本值
		zuoYan.addAttribute("num", "0.5");
		zuoYan.addText("左眼");
		youYan.addAttribute("num", "0.5");
		youYan.addText("右眼");
		//设定格式化输出标准
		OutputFormat format = new OutputFormat();
		format.setEncoding("UTF-8");//设置编码格式
        format.setIndent("    ");//设置首行缩进
		format.setNewlines(true);//设置换行
		//写入
		String path = "E:/xml/people.xml";
		FileWriter write = new FileWriter(path);
		XMLWriter xmlWriter = new XMLWriter(write,format);
		xmlWriter.write(document);//写入文档
		System.out.println("写入成功!");
		//关闭流对象
		xmlWriter.close();
		write.close();
	}
}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值