zoukankan      html  css  js  c++  java
  • Java操作XML牛逼利器JDOM&DOM4J

    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>

    结果:

  • 相关阅读:
    (转)了解JNDI
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver问题
    占个座
    关于 inode 与 iblock 的知识
    机器学习性能度量指标:ROC曲线、查准率、查全率、F1
    编译出现的问题解决
    二分查找(Binary Search)
    ST算法 Sliding Window algorithm template
    数据结构_算法
    知识点积累
  • 原文地址:https://www.cnblogs.com/zyxsblogs/p/10114062.html
Copyright © 2011-2022 走看看