JAVA-XML应用学习(1)


这天几做了一些有关XML的应用,如从数据库取出数据以XML格式为FLASH提供数据源,以及以XML为基础的接口应用,主要还是用它来保存数据、传输数据。

如今JAVA中XML API大概有4种,DOM、SAX、JDOM、DOM4J,不过应用最多的算是DOM4J,性能最好。它是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J.

如下是一个DOM4J的小实例:

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文件转换器,有兴趣的朋友可以深入了解一下。

你可能感兴趣的:(java,xml,Excel,Flash,Office)