Java 操作XML,JDOM&DOM4J
JDOM 引入
JDOM 是一种使用XML(标准通用标记语言下的一个子集) 的独特Java 工具包,用于快速开发XML 应用
程序。
JDOM 官方网站:http://www.jdom.org/
DOM4J 引入
dom4j 是一个Java 的XML API,类似于jdom,用来读写XML 文件的。dom4j 是一个非常非常优秀的JavaXML
API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge
上找到它。在IBM developerWorks 上面可以找到一篇文章,对主流的Java XML API 进行的性能、功能和易用性
的评测,dom4j 无论在哪个方面都是非常出色的。如今你可以看到越来越多的Java 软件都在使用dom4j 来读写
XML,特别值得一提的是连Sun 的JAXM 也在用dom4j。这是必须使用的jar 包, Hibernate 用它来读写配置文
件。
DOM4J 官方网站:http://www.dom4j.org/
package com.zhiqi.test; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class DOM4JSet { public static void main(String[] args) { Document document=DocumentHelper.createDocument(); Element studentElement=document.addElement("student"); studentElement.addAttribute("id", "001"); studentElement.addAttribute("aa", "xx"); Element name=studentElement.addElement("name"); name.setText("张三"); Element sex=studentElement.addElement("sex"); sex.setText("男"); Element age=studentElement.addElement("age"); age.setText("20"); OutputFormat format=OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); try { XMLWriter writer=new XMLWriter(new FileOutputStream("src/student.xml"),format); writer.write(document); writer.close(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
解析DOM
<?xml version="1.0" encoding="UTF-8"?> <emps> <emp empNo="10050"> <empName>Allen</empName> <job>办事员</job> <addr>波士顿</addr> </emp> <emp empNo="10060"> <empName>Smith</empName> <job>销售员</job> <addr>纽约</addr> </emp> <emp empNo="10070"> <empName>James</empName> <job>技术员</job> <addr>北京</addr> </emp> </emps>
package com.zhiqi.test; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class DOM4JGet { public static void main(String[] args) throws Exception{ SAXReader saxReader=new SAXReader(); Document document=saxReader.read("src/emp.xml"); Element rootElement=document.getRootElement(); Iterator iter=rootElement.elementIterator(); while(iter.hasNext()){ Element empElement=(Element)iter.next(); System.out.println("编号:"+empElement.attributeValue("empNo")); System.out.println("姓名:"+empElement.elementText("empName")); System.out.println("职位:"+empElement.elementText("job")); System.out.println("地址:"+empElement.elementText("addr")); System.out.println("========="); } } }