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>

结果:

Java操作XML牛逼利器JDOM&DOM4J的更多相关文章

  1. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)

    1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...

  2. Java操作xml文件的jar包dom4j

    只能解析xml文件,不能解析普通的文件 https://www.cnblogs.com/sharpest/p/7877501.html

  3. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  4. Java操作XML的JAXB工具

    在java中操作XML的工作中中,比较方便的工具是JAXB(Java Architecture for XML Binding). 利用这个工具很方便生成XML的tag和Java类的对应关系.参照网上 ...

  5. Java操作XML文件 dom4j 篇

    在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...

  6. 推荐一个 Java 里面比较牛逼的公众号!

    今天给大家推荐一个牛逼的纯 Java 技术公众号:Java技术栈,作者:栈长. Java程序员.Java爱好者扫码关注吧! 确实牛逼,几十万人关注了,原创文章350+,好友都 3000+ 关注了. 栈 ...

  7. 用java操作XML文件(DOM解析方式)

    XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...

  8. Java操作xml文件

    Bbsxml.java public class Bbsxml { private String imgsrc; private String title; private String url; p ...

  9. java操作xml方式比较与详解(DOM、SAX、JDOM、DOM4J)

    java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式的比较与详解     1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...

随机推荐

  1. ubuntu下php-fpm多实例运行配置

    php-fpm服务一般情况下我们只会配置一个php-fpm了,如果我们碰到要实现多实例php-fpm服务要如何来配置呢,下面一起来看看吧. 这里是在LNMP环境的基础上配置多实例的过程.因为我在使用的 ...

  2. Redis学习笔记(五)散列进阶

    HEXISTS key_name key(检查键key是否存在) HKEYS key_name(获得散列的所有键) HVALS key_name(获得散列的所有值) HINCRBY key_name ...

  3. Android系统级技巧合集

    Android系统级技巧合集(随时更新) #转载请注明来源# 1.高通骁龙系列查看CPU体质等级 CPU体质,即为CPU在工作频率下的电压.同一批次的CPU体质各有不同,体质越高,代表该颗CPU可在更 ...

  4. [整理]ADB命令行学习笔记

    global driver# 元素定位driver.find_element_by_id("id") # id定位driver.find_element_by_name(" ...

  5. Android Studio集成crashlytics后无法编译的问题

    http://blog.csdn.net/zhuobattle/article/details/50555393 问题描述: 在用fabric集成后编译出现如下错误, Error:Cause: hos ...

  6. 树状数组 || POJ 3321 Apple Tree

    一道dfs序+树状数组的题 因为并没有get到dfs序以及对树状数组也不熟练卡了很久orz dfs序: in和out是时间戳 dfs序可以将树转化成为一个序列,满足区间 -> 子树 然后就可以用 ...

  7. JAVA中等待所有线程都执行结束(转2)

    场景: package com.java4all.mypoint; import java.util.concurrent.CountDownLatch; public class ThreadTes ...

  8. No-3.Linux 终端命令格式

    Linux 终端命令格式 01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应功能的英文单词或单词的缩写 [-options]:选项 ...

  9. JS动态添加元素的事件动态绑定

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. js实现音量拖拽的效果模拟

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>js ...