用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();
}
}
}
分享到:
相关推荐
为了处理XML文件,Java开发者经常使用库如JDOM和DOM4J,这两个都是Java XML API的实现。本文将深入探讨JDOM和DOM4J,以及它们在解析XML时的应用。 **JDOM** JDOM,全称Java Document Object Model,是一个专为Java...
总的来说,JDOM和DOM4J都是Java开发中处理XML的强大工具,它们各有特点,可以根据项目需求和开发者的喜好选择使用。在实际应用中,还需要了解如何有效地使用XPath查询、XML命名空间处理以及如何高效地读写XML文件等...
DOM(Document Object Model)是W3C制定的一种标准,它为XML和HTML文档提供了一种...在2Code和3Code这两个文件中,可能包含了这些库的具体使用示例,学习和理解这些源码可以帮助你更好地掌握DOM、JDOM和dom4j的用法。
**使用 JDOM 和 DOM4J 进行 XML 解析的关键步骤**: - **加载 XML 文件**:无论是 JDOM 还是 DOM4J,都可以通过类似的方式加载 XML 文件到内存中。 - **解析元素**:可以使用这些库提供的方法来遍历 XML 文档中的...
DOM、JDOM、DOM4J解析XML实例
本篇文章主要聚焦于Java中解析XML的两种流行库——JDOM和DOM4J的总结。我们将深入探讨它们的工作原理、优缺点以及如何在实际项目中使用它们。 首先,让我们了解一下JDOM。JDOM是Java专门针对XML设计的一个解析库,...
本文将深入探讨DOM、SAX、JDom和dom4j四种流行的Java XML解析器,以及它们在处理XML文档时的特点和用法。 1. DOM(Document Object Model) DOM是W3C推荐的一种解析XML的标准方法。它将XML文档表示为一个树形结构,...
在"ParseXml"这个压缩包中,可能包含了示例代码,演示了如何使用JDOM、DOM4J和DOM解析XML文件。通过阅读和理解这些代码,你可以更好地掌握这些库的用法,提升处理XML文件的能力。记得实践是检验理论的最好方式,尝试...
本文将深入探讨XML数据在前后台解析的过程中,重点介绍两种主流的Java XML解析库——JDOM和DOM4J,并提供实际运行的程序示例。同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的...
本文将详细介绍四种在Java中解析XML文件的方法:SAX、DOM、JDOM以及DOM4J。 1. SAX(Simple API for XML) SAX是一种基于事件驱动的解析器,它在读取XML文档时会触发一系列事件,如开始元素、结束元素、字符数据等...
Java在处理XML文档时,经常会使用到解析库,其中Dom4j和JDom是两个非常重要的选择。这两个库都是基于Java的DOM(Document Object Model)实现,提供了方便的方式来读取、写入、修改XML文件。下面我们将详细探讨这两...
**DOM4J详解与实例应用** DOM4J是一款强大的Java XML处理库,它提供了一种灵活且高效的方式来处理XML文档。DOM4J以其简洁的API、高性能和丰富的功能,成为了许多Java开发者在处理XML时的首选工具。在这个实例中,...
**DOM4J 源文件详解** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得...这个压缩包中的源代码和示例是学习和使用 DOM4J 的宝贵资源,可以帮助开发者深入理解其内部机制,并在实际项目中灵活应用。
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 示例详解:掌握XML处理的所有常用方法 #### 引言 DOM4j(Document Object Model for Java)是一个...以上是对DOM4j库中创建与修改XML文档功能的详细介绍,希望对正在学习或使用DOM4j的开发者们有所帮助。
**标题解析:** "一个简单的Dom4j学习的例子" 暗示了我们将探讨的是如何使用Dom4j这个Java库来处理XML文档的基础知识。Dom4j是一个灵活且高效的XML处理库,它提供了丰富的API来读取、写入、修改XML文档。 **描述...
本文将详细介绍四种主流的Java XML处理库:DOM4J、DOM、JDOM和SAX,并通过简单的代码示例帮助初学者入门。 1. DOM (Document Object Model) DOM是W3C制定的一种标准,它将XML文档视为一个树形结构,允许开发者通过...
- **与SAX和JDOM的兼容**:DOM4j可以与其他XML解析库集成,如SAX和JDOM,扩大了选择和灵活性。 **HTML与XML的区别和XML的诞生** HTML(超文本标记语言)最初是为了方便信息交换而设计的,但随着Web的发展,HTML变...
DOM4J和JDOM是Java中处理XML的主要库,提供了XML的解析、创建和修改功能。 JDOM是Java中一个专注于XML处理的库,它提供了一种简单和直接的方式来构建和操作XML文档。在提供的`parse()`方法中,可以看到如何使用JDOM...