`

jdom和dom4j的使用实例

阅读更多
用jdom对xml文件进行读写。

首先要下载一个jdom的jar包。再自己的项目中导入相应的jar包,其中包括builder目录下的jdom.jar,还是就是lib下面的jar包。。接下来就是操作了:(我的xml文件和class文件都放在了同一个目录下了)
1.xml文件实例:
<?xml version="1.0" encoding="UTF-8"?>
<school>
 <class name="class2">
  <student>
   <name>古天乐</name>
   <age>30</age>
   <score>59.3</score>
  </student>
  <student>
   <name>刘德华</name>
   <age>35</age>
   <score>59.6</score>
  </student>
 </class>
 <class name="class3">
  <student>
   <name>张学友</name>
   <age>36</age>
   <score>59.8</score>
  </student>
 </class>
</school>

2.对xml进行操作的java文件:
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;


public class ReadXML4JDOM {

 public static void main(String[] args) {
  read("myschool.xml");
  System.out.println("执行完毕!");
 }
 
 public static void read(String filename) {
  SAXBuilder saxb = new SAXBuilder();
  try {
   Document dc = saxb.build(Thread.currentThread().getContextClassLoader().getResourceAsStream(filename));
   Element root = dc.getRootElement();
   List<Element> classes = (List) root.getChildren("class");
   for(Element element : classes) {
    String className = element.getAttributeValue("name");
    System.out.println(className+":");
    if(((List)element.getChildren("student")).size() == 1) {
     Element sudent = element.getChild("student");
     String name = sudent.getChildText("name");
     String age = sudent.getChildText("age");
     String score = sudent.getChildText("score");
     System.out.println("My name is "+name+",I'm "+age+" old! I'm in "+className+",and I got "+score+" scores!");
    }else {
     for(Element student : (List<Element>)element.getChildren("student")) {
      String name = student.getChildText("name");
      String age = student.getChildText("age");
      String score = student.getChildText("score");
      System.out.println("My name is "+name+",I'm "+age+" old! I'm in "+className+",and I got "+score+" scores!");
     }
    }
   }
  } catch (JDOMException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}



3。运行结果:

class2:
My name is 古天乐,I'm 30 old! I'm in class2,and I got 59.3 scores!
My name is 刘德华,I'm 35 old! I'm in class2,and I got 59.6 scores!
class3:
My name is 张学友,I'm 36 old! I'm in class3,and I got 59.8 scores!
执行完毕!
---------------------------------------------------------
---------------------下面是dom4j---------------------------
----------------------------------------------------------
1.首先引入包。dom4j.jar,如果需要的话,还可以引入jaxen-。。-beta.jar

2.xml。和jdom的是一样的:

<?xml version="1.0" encoding="UTF-8"?>
<school>
 <class name="class2">
  <student>
   <name>古天乐</name>
   <age>30</age>
   <score>59.3</score>
  </student>
  <student>
   <name>刘德华</name>
   <age>35</age>
   <score>59.6</score>
  </student>
 </class>
 <class name="class3">
  <student>
   <name>张学友</name>
   <age>36</age>
   <score>59.8</score>
  </student>
 </class>
</school>

3.java代码:

import java.io.File;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class ReadXML4Dom4j {

 public static void main(String[] args){
  read("src/myschool.xml");
 }

 public static void read(String filename) {
  SAXReader sr = new SAXReader();
  try {
   Document dc = sr.read(new File(filename));
   //获取根元素
   Element root = dc.getRootElement();
   for(Object obj : root.elements()) {
    Element myclass = (Element)obj;
    //获取某个标签的属性,首先获得标签的属性,然后再获取内容 
    Attribute ab = myclass.attribute("name");
    String classname = ab.getText();
    System.out.println(classname+":");
    //获取myclass标签下面的所有子元素
    List<Element> students = (List<Element>)myclass.elements(); 
    
    if(students.size() == 1) {
     Element student  = students.get(0);
     //获取name标签
     Element nameEle = student.element("name");
     //获取name标签的内容
     String name = nameEle.getText();
     
     Element ageEle = student.element("age");
     String age = ageEle.getText();
     
     Element scoreEle = student.element("score");
     String score = scoreEle.getText();
     
     System.out.println("name: "+name+",age: " +age+", score: "+score);
     
    }else {
     for(Element student : students) {
      Element nameEle = student.element("name");
      String name = nameEle.getText();
      
      Element ageEle = student.element("age");
      String age = ageEle.getText();
      
      Element scoreEle = student.element("score");
      String score = scoreEle.getText();
      System.out.println("name: "+name+",age: " +age+", score: "+score);
     }
    }
   }
  } catch (DocumentException e) {
   e.printStackTrace();
  }
 }
}


分享到:
评论

相关推荐

    jdom+dom4j

    为了处理XML文件,Java开发者经常使用库如JDOM和DOM4J,这两个都是Java XML API的实现。本文将深入探讨JDOM和DOM4J,以及它们在解析XML时的应用。 **JDOM** JDOM,全称Java Document Object Model,是一个专为Java...

    jdom和dom4j的jar包

    总的来说,JDOM和DOM4J都是Java开发中处理XML的强大工具,它们各有特点,可以根据项目需求和开发者的喜好选择使用。在实际应用中,还需要了解如何有效地使用XPath查询、XML命名空间处理以及如何高效地读写XML文件等...

    DOM JDOM dom4j 实例源码

    DOM(Document Object Model)是W3C制定的一种标准,它为XML和HTML文档提供了一种...在2Code和3Code这两个文件中,可能包含了这些库的具体使用示例,学习和理解这些源码可以帮助你更好地掌握DOM、JDOM和dom4j的用法。

    DOM、JDOM、DOM4J解析XML实例.pdf

    **使用 JDOM 和 DOM4J 进行 XML 解析的关键步骤**: - **加载 XML 文件**:无论是 JDOM 还是 DOM4J,都可以通过类似的方式加载 XML 文件到内存中。 - **解析元素**:可以使用这些库提供的方法来遍历 XML 文档中的...

    DOM、JDOM、DOM4J解析XML实例

    DOM、JDOM、DOM4J解析XML实例

    \"java xml 四\"之JDOM、DOM4J解析XML总结

    本篇文章主要聚焦于Java中解析XML的两种流行库——JDOM和DOM4J的总结。我们将深入探讨它们的工作原理、优缺点以及如何在实际项目中使用它们。 首先,让我们了解一下JDOM。JDOM是Java专门针对XML设计的一个解析库,...

    用DOM SAX JDom dom4j 对xml文档解析实例

    本文将深入探讨DOM、SAX、JDom和dom4j四种流行的Java XML解析器,以及它们在处理XML文档时的特点和用法。 1. DOM(Document Object Model) DOM是W3C推荐的一种解析XML的标准方法。它将XML文档表示为一个树形结构,...

    Jdom、Dom4j 、dom解析xml文件

    在"ParseXml"这个压缩包中,可能包含了示例代码,演示了如何使用JDOM、DOM4J和DOM解析XML文件。通过阅读和理解这些代码,你可以更好地掌握这些库的用法,提升处理XML文件的能力。记得实践是检验理论的最好方式,尝试...

    xml数据前后台解析:jdom与dom4j源码,程序可以跑

    本文将深入探讨XML数据在前后台解析的过程中,重点介绍两种主流的Java XML解析库——JDOM和DOM4J,并提供实际运行的程序示例。同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的...

    SAX, DOM, JDOM, DOM4J解析XML文件

    本文将详细介绍四种在Java中解析XML文件的方法:SAX、DOM、JDOM以及DOM4J。 1. SAX(Simple API for XML) SAX是一种基于事件驱动的解析器,它在读取XML文档时会触发一系列事件,如开始元素、结束元素、字符数据等...

    Java的Dom4j和JDom的jar包

    Java在处理XML文档时,经常会使用到解析库,其中Dom4j和JDom是两个非常重要的选择。这两个库都是基于Java的DOM(Document Object Model)实现,提供了方便的方式来读取、写入、修改XML文件。下面我们将详细探讨这两...

    dom4j dom4j实例

    **DOM4J详解与实例应用** DOM4J是一款强大的Java XML处理库,它提供了一种灵活且高效的方式来处理XML文档。DOM4J以其简洁的API、高性能和丰富的功能,成为了许多Java开发者在处理XML时的首选工具。在这个实例中,...

    dom4j的源文件(dom4j-1.6.1)含例子和jar包

    **DOM4J 源文件详解** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得...这个压缩包中的源代码和示例是学习和使用 DOM4J 的宝贵资源,可以帮助开发者深入理解其内部机制,并在实际项目中灵活应用。

    dom4j-jdom封装和解析例子

    dom4j,jsoup,jdom,w3cdom,xstream使用代码工程 package ivyy.taobao.com.dom4j; import ivyy.taobao.com.entity.Address; import ivyy.taobao.com.entity.Location; import ivyy.taobao.com.entity.Point; import ...

    dom4j_例子,包括所有常用用法

    ### DOM4j 示例详解:掌握XML处理的所有常用方法 #### 引言 DOM4j(Document Object Model for Java)是一个...以上是对DOM4j库中创建与修改XML文档功能的详细介绍,希望对正在学习或使用DOM4j的开发者们有所帮助。

    一个简单的Dom4j学习的例子

    **标题解析:** "一个简单的Dom4j学习的例子" 暗示了我们将探讨的是如何使用Dom4j这个Java库来处理XML文档的基础知识。Dom4j是一个灵活且高效的XML处理库,它提供了丰富的API来读取、写入、修改XML文档。 **描述...

    一写小例子,dom4J,dom,jdom,sax解析和创建XML文件,代码虽然简单,但是功能实现,适合入门

    本文将详细介绍四种主流的Java XML处理库:DOM4J、DOM、JDOM和SAX,并通过简单的代码示例帮助初学者入门。 1. DOM (Document Object Model) DOM是W3C制定的一种标准,它将XML文档视为一个树形结构,允许开发者通过...

    DOM4j属性的详细介绍及相关的例子

    - **与SAX和JDOM的兼容**:DOM4j可以与其他XML解析库集成,如SAX和JDOM,扩大了选择和灵活性。 **HTML与XML的区别和XML的诞生** HTML(超文本标记语言)最初是为了方便信息交换而设计的,但随着Web的发展,HTML变...

    DOM4J/JDOM对XML的操作

    DOM4J和JDOM是Java中处理XML的主要库,提供了XML的解析、创建和修改功能。 JDOM是Java中一个专注于XML处理的库,它提供了一种简单和直接的方式来构建和操作XML文档。在提供的`parse()`方法中,可以看到如何使用JDOM...

Global site tag (gtag.js) - Google Analytics