JDOM
JDOM 是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包,用于快速开发 XML 应用 程序。
JDOM 官方网站:http://www.jdom.org/
利用JDOM生成xml:
1 package com.java1234.xml2; 2 3 import java.io.FileNotFoundException; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 import org.jdom2.Attribute; 8 import org.jdom2.Document; 9 import org.jdom2.Element; 10 import org.jdom2.output.XMLOutputter; 11 12 public class JDOM01 { 13 public static void main(String[] args) { 14 Element student=new Element("student"); 15 Attribute id=new Attribute("id", "001"); 16 Attribute aa=new Attribute("aa","xxx"); 17 student.setAttribute(id); 18 student.setAttribute(aa); 19 Element name=new Element("name"); 20 name.setText("张三"); 21 student.addContent(name); 22 Element sex=new Element("sex"); 23 sex.setText("女"); 24 student.addContent(sex); 25 Element age=new Element("age"); 26 age.setText("18"); 27 student.addContent(age); 28 Document document=new Document(student); 29 XMLOutputter out=new XMLOutputter(); 30 out.setFormat(out.getFormat().setEncoding("utf-8")); 31 try { 32 out.output(document, new FileOutputStream("src/student2.xml")); 33 } catch (FileNotFoundException e) { 34 // TODO Auto-generated catch block 35 e.printStackTrace(); 36 } catch (IOException e) { 37 // TODO Auto-generated catch block 38 e.printStackTrace(); 39 } 40 } 41 }
利用JDOM遍历xml文件:
文件为 students.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <students> 3 <student id="001"> 4 <name>张三</name> 5 <sex>男</sex> 6 <age>20</age> 7 </student> 8 <student id="002"> 9 <name>李四</name> 10 <sex>女</sex> 11 <age>18</age> 12 </student> 13 </students>
java文件:
1 package com.java1234.xml2; 2 3 import java.util.List; 4 5 import org.jdom2.Document; 6 import org.jdom2.Element; 7 import org.jdom2.input.SAXBuilder; 8 9 public class JDOM02 { 10 public static void main(String[] args) throws Exception { 11 SAXBuilder builder=new SAXBuilder(); 12 Document document=builder.build("src/students.xml"); 13 Element students=document.getRootElement(); 14 List studentList=students.getChildren(); 15 for(int i=0;i<studentList.size();i++){ 16 Element student=(Element) studentList.get(i); 17 String id=student.getAttributeValue("id"); 18 String name=student.getChildText("name"); 19 String sex=student.getChildText("sex"); 20 String age=student.getChildText("age"); 21 System.out.println("学号:"+id+" 姓名:"+name+" 年龄:"+age+" 性别: "+sex); 22 } 23 } 24 }
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
利用DOM4J生成xml
1 package com.java1234.xml2; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.io.UnsupportedEncodingException; 9 10 import org.dom4j.Document; 11 import org.dom4j.DocumentHelper; 12 import org.dom4j.Element; 13 import org.dom4j.io.OutputFormat; 14 import org.dom4j.io.XMLWriter; 15 public class DOM4j01 { 16 public static void main(String[] args){ 17 Document document= DocumentHelper.createDocument(); 18 Element studentElement=document.addElement("student"); 19 studentElement.addAttribute("id", "001"); 20 studentElement.addAttribute("aa", "xxx"); 21 Element name=studentElement.addElement("name"); 22 name.setText("张三"); 23 Element sex=studentElement.addElement("sex"); 24 sex.setText("女"); 25 Element age=studentElement.addElement("age"); 26 age.setText("18"); 27 OutputFormat format=OutputFormat.createPrettyPrint(); 28 format.setEncoding("utf-8"); 29 try { 30 XMLWriter writer=new XMLWriter(new FileOutputStream("src/student3.xml"), format); 31 try { 32 writer.write(document); 33 } catch (IOException e) { 34 // TODO Auto-generated catch block 35 e.printStackTrace(); 36 } 37 try { 38 writer.close(); 39 } catch (IOException e) { 40 // TODO Auto-generated catch block 41 e.printStackTrace(); 42 } 43 } catch (UnsupportedEncodingException e) { 44 // TODO Auto-generated catch block 45 e.printStackTrace(); 46 } catch (FileNotFoundException e) { 47 // TODO Auto-generated catch block 48 e.printStackTrace(); 49 } 50 } 51 }
生成xml文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <student id="001" aa="xxx"> 3 <name>张三</name> 4 <sex>女</sex> 5 <age>18</age> 6 </student>
利用DOM4J提取文件信息:
java代码:
1 package com.java1234.xml2; 2 3 import java.util.Iterator; 4 5 import org.dom4j.Document; 6 import org.dom4j.Element; 7 import org.dom4j.io.SAXReader; 8 9 public class DOM4j02 { 10 public static void main(String[] args)throws Exception{ 11 SAXReader sr=new SAXReader(); 12 Document document=sr.read("src/students.xml"); 13 Element root=document.getRootElement(); 14 Iterator iter=root.elementIterator(); 15 while(iter.hasNext()){ 16 Element Studentelement=(Element) iter.next(); 17 System.out.println("学号 :"+Studentelement.attributeValue("id")); 18 System.out.println("姓名 :"+Studentelement.elementText("name")); 19 System.out.println("性别 :"+Studentelement.elementText("sex")); 20 System.out.println("年龄 :"+Studentelement.elementText("age")); 21 System.out.println("================"); 22 } 23 } 24 }
xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <students> 3 <student id="001"> 4 <name>张三</name> 5 <sex>男</sex> 6 <age>20</age> 7 </student> 8 <student id="002"> 9 <name>李四</name> 10 <sex>女</sex> 11 <age>18</age> 12 </student> 13 </students>
结果: