JDOM
JDOM 是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包,用于快速开发 XML 应用 程序。
利用JDOM生成xml:
1 packagecom.java1234.xml2;2
3 importjava.io.FileNotFoundException;4 importjava.io.FileOutputStream;5 importjava.io.IOException;6
7 importorg.jdom2.Attribute;8 importorg.jdom2.Document;9 importorg.jdom2.Element;10 importorg.jdom2.output.XMLOutputter;11
12 public classJDOM01 {13 public static voidmain(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=newDocument(student);29 XMLOutputter out=newXMLOutputter();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
3
4 张三
5 男
6 20
7
8
9 李四
10 女
11 18
12
13
java文件:
1 packagecom.java1234.xml2;2
3 importjava.util.List;4
5 importorg.jdom2.Document;6 importorg.jdom2.Element;7 importorg.jdom2.input.SAXBuilder;8
9 public classJDOM02 {10 public static void main(String[] args) throwsException {11 SAXBuilder builder=newSAXBuilder();12 Document document=builder.build("src/students.xml");13 Element students=document.getRootElement();14 List studentList=students.getChildren();15 for(int i=0;i
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生成xml
1 packagecom.java1234.xml2;2
3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileNotFoundException;6 importjava.io.FileOutputStream;7 importjava.io.IOException;8 importjava.io.UnsupportedEncodingException;9
10 importorg.dom4j.Document;11 importorg.dom4j.DocumentHelper;12 importorg.dom4j.Element;13 importorg.dom4j.io.OutputFormat;14 importorg.dom4j.io.XMLWriter;15 public classDOM4j01 {16 public static voidmain(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
3 张三
4 女
5 18
6
利用DOM4J提取文件信息:
java代码:
1 packagecom.java1234.xml2;2
3 importjava.util.Iterator;4
5 importorg.dom4j.Document;6 importorg.dom4j.Element;7 importorg.dom4j.io.SAXReader;8
9 public classDOM4j02 {10 public static void main(String[] args)throwsException{11 SAXReader sr=newSAXReader();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
3
4 张三
5 男
6 20
7
8
9 李四
10 女
11 18
12
13
结果: