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文件转换器,有兴趣的朋友可以深入了解一下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值