使用DOM4J的一个小例子

原文:http://leign.iteye.com/blog/547071

package com.dujiali.test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class XMLTest {
	
	public String makeXml()
	{
		Document doc = DocumentHelper.createDocument();
		doc.setXMLEncoding("GBK");	//设置XML文件编码格式
		Element root = doc.addElement("info");
		Element element;
		element = root.addElement("user").addAttribute("username", "leign")
		.addAttribute("password", "testpass")
		.addElement("userInfo");
		element.addElement("性别").addText("男")
		.addAttribute("年龄", "22");
		
		String xmlStr = doc.asXML();
		
		System.out.println("xml===="+xmlStr);
		
		return xmlStr;
	}
	
	public Element getElemntByParseText(String xmlStr)
	{
		Element element = null;
		Document doc;
		try {
			//解析XML内容
			doc = DocumentHelper.parseText(xmlStr);
			Element root = doc.getRootElement();
			
			//获得指定元素
			element = root.element("user");
			System.out.println("element===="+element);
			
			//遍历
			List elementList = root.elements();
			if(elementList!=null && elementList.size()>0){
				int i=0,len=elementList.size();
				while(i<len){
					element = (Element)elementList.get(i);
					System.out.println("element===="+element);	
					i++;
				}
			}
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return element;
	}
	
	public void makeFile(String content)
	{
		try {
			File xmlFile = new File("D:\\testXml.xml");
			FileOutputStream fout = new FileOutputStream(xmlFile);
			if(content!=null)
				fout.write(content.getBytes());
			fout.flush();
			fout.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args)
	{
		XMLTest xmltest = new XMLTest();
		String xmlContent = xmltest.makeXml();
		xmltest.makeFile(xmlContent);
		System.out.println(""+xmltest.getElemntByParseText(xmlContent));
	}
}

 

生成的XML文件,可根据内容区别addElemnt()与addAttribute()的区别

<?xml version="1.0" encoding="GBK"?>
<info>
	<user username="leign" password="testpass">
		<userInfo>
			<性别 年龄="22">男</性别>
		</userInfo>
	</user>
</info>

 说到XML与其他文件格式的转换,比较常见的有Excel、HTML、DOC等,其实Excel、WORD这些OFFICE文件本身就可以另存为XML格式,只是比一般的XML多了一些格式样式,且Excel可以自己识别它所转化的XML文件。网上也有很多XML文件转换器,有兴趣的朋友可以深入了解一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值