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