Dom4J解析XML和创建XML文件

本文介绍了如何使用Java创建XML文件并提供了两种不同的方法来解析XML文件。第一种方法使用SAXReader结合迭代器来逐个读取每个元素,第二种方法同样使用SAXReader但直接获取根元素下的特定子元素。

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

xml文本:

<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>aa</name>
<sex>m</sex>
<age>23</age>
</employee>
<employee>
<name>bb</name>
<sex>f</sex>
<age>24</age>
</employee>
</employees>

创建XML文件

	public static void createXml(String fileName) {
		Document document = DocumentHelper.createDocument();
		Element employees = document.addElement("employees");
		Element employee = employees.addElement("employee");
		Element name = employee.addElement("name");
		name.setText("aa");
		Element sex = employee.addElement("sex");
		sex.setText("m");
		Element age = employee.addElement("age");
		age.setText("23");
		try {
			Writer fileWriter = new FileWriter(fileName);
			XMLWriter xmlWriter = new XMLWriter(fileWriter);
			xmlWriter.write(document);
			xmlWriter.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
第一种解析方法:

public static void parserXml(String fileName) {
		File inputXml = new File(fileName);
		SAXReader saxReader = new SAXReader();
		try {
			Document document = saxReader.read(inputXml);
			Element employees = document.getRootElement(); 
			for (Iterator i = employees.elementIterator(); i.hasNext();) {
				Element employee = (Element) i.next();
				for (Iterator j = employee.elementIterator(); j.hasNext();) {
					Element node = (Element) j.next();
					System.out.println(node.getName() + ":" + node.getText());
				}
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}

第二种解析方法:

public static void parseXmlOther(String filePath){
		SAXReader reader = new SAXReader();
		try {
		Document document = 	reader.read(filePath);
		Element ele = document.getRootElement();
		Iterator<Element> iterator = ele.elementIterator("employee");
		for(;iterator.hasNext();){
			Element xmlElement = iterator.next();
			System.out.println("name="+xmlElement.elementText("name"));
			System.out.println("sex="+xmlElement.elementText("sex"));
			System.out.println("age="+xmlElement.elementText("age"));
		}
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值