- 浏览: 175614 次
- 性别:
- 来自: 重庆
最新评论
-
2047699523:
java图片工具类源代码下载:http://www.zuida ...
java实现图片的打印 -
34176470:
Exception in thread "main& ...
java打印Excel -
lionios:
请问为什么一定要有PrintService service = ...
java实现图片的打印 -
javawang2012:
如果是java web树就好了
java自动生成目录树
xml是扩展性的标记性语言,是用于两个程序之间数据通信,也可以用来存放数据,做一个小型的数据库等,xml广泛使用与项目开发中,我们可以把很多有用的内容保存在xml文件中,这样便于修改,方便,灵活。当我们想要取出保存在xml中的数据的时候,我们可以把它解析出来,便于我们使用,解析xml文件的方法有很多种,但dom4j是最灵活和最常用的一种方法,以后在hibernate中也经常使用,下面是解析xml文件的一个简单的实例:
一:一个简单的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<class>
<student id="hhh" name="kaka">
<name id ="tt" name="kak">周星星</name>
<age id="ttt">45</age>
<sex id="mao">男</sex>
</student>
<student id="aa">
<name id="kk">田小小</name>
<age id="nn">20</age>
<sex id="ll">男</sex>
</student>
<student id="55">
<name id="hha">小小</name>
<age id="kka">45</age>
<sex id="maomao">男</sex>
</student>
</class>
二:用dom4j解析出所有元素和属性:
package xml;
import java.io.File;
import java.util.*;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ReaderXml2 {
public void read() throws Exception {
//创建一个xml读取器
SAXReader reader = new SAXReader();
//读取文件
//路径,现在4。xml是直接放在项目的根目录下Document document = reader.read(new File("4.xml"));
//若不是放在根目录下,那么就要指定一个路径,避免出错
String path = this.getClass().getResource("/4.xml").getPath();
//Document是文档
Document document = reader.read(new File(path));
//获取根元素
Element element = document.getRootElement();
element(element);
}
//递归取出所有元素
public void element(Element element){
System.out.println("元素: "+element.getName());
//如果只是一个普通的元素没有子元素的,就直接输出
if(element.isTextOnly()==true){
System.out.println("元素 名称: "+element.getName()+"||||"+"元素内容:"+element.getText());
}else{
//如果里面还有字元素的,那么就把它里面的内容输出
List elements = element.elements();
int size = elements.size();
for(int i=0;i<size;i++){
Element emt = (Element)elements.get(i);
//System.out.println("元素:"+emt.getName());
//递归遍历出所有的元素
element(emt);
//某一个元素的所有属性列出来
arr(emt);
}
}
}
public void arr(Element element){
//取出所有的属性,放在list中
List att = element.attributes();
int size = att.size();
for(int i=0;i<size;i++){
//依次取出属性
Attribute attb = (Attribute)att.get(i);
//输出元素名称,属性名称和属性内容
System.out.println("元素名称"+element.getName()+" 属性名称:"+attb.getName()+"属性内容:"+attb.getValue());
}
}
public static void main(String[] args){
try {
new ReaderXml2().read();
} catch (Exception e){
e.printStackTrace();
}
}
}
三:用访问者模式快速读取xml文件:
下面这个xml是一个加载和连接Oracle数据库的xml配置文件
<?xml version="1.0" encoding="utf-8"?>
<oracle>
<drivername>oracle.jdbc.driver.OracleDriver</drivername>
<url>jdbc:oracle:thin:@192.168.6.4:1521:orcl</url>
<dbname>scott</dbname>
</oracle>
编写访问者设计模式,读取该文件:
package xml;
import java.io.File;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.VisitorSupport;
import org.dom4j.io.SAXReader;
public class Visitorreader {
public void load(String xmlfile){
SAXReader reader = new SAXReader();
String path = this.getClass().getResource(xmlfile).getPath();
try {
Document doc = reader.read(new File(path));
doc.accept(new Myvisitor());
} catch (DocumentException e) {
e.printStackTrace();
}
}
//访问者模式
class Myvisitor extends VisitorSupport{
@Override
public void visit(Attribute node) {
System.out.println("属性名称:"+node.getName()+"\t\t"+"属性内容:"+node.getValue());
}
@Override
public void visit(Element node) {
System.out.println("元素名称:"+node.getName()+"\t\t"+"元素内容:"+node.getText());
}
}
public static void main(String[] args){
new Visitorreader().load("/4.xml");
}
}
<dbpw>tiger</dbpw>
</oracle>
从上面的程序中我们可以看出,很简单,比第一个列子中的代码少了很多。而且这样的读取后,我们可以再编写一个连接数据库的工具类,把上面的读取方法直接加上去,就可以了,就避免了我们在使用工具类连接数据库的时候,由于服务器的不同而修改多次的代码,若要修改,我们直接修改xml文件,就可以很方面的解决,在此就不多加描述了
四。使用dom4j技术创建xml文件
package xml;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class CreateXml {
private void create(String xmlFileName){
//
DocumentFactory factory = new DocumentFactory();
Document document = factory.createDocument();
Element root = document.addElement("计算机图书");
for(int i=0;i<4;i++){
Element book = root.addElement("图书");
book.setText("Think in java"+i);
book.addAttribute("isdn","a"+Math.random()*100);
Element e = book.addElement("作者");
e.setText("田小小");
}
OutputFormat format = new OutputFormat(" ",true,"GBK");
try {
FileWriter fw = new FileWriter(xmlFileName);
XMLWriter writer = new XMLWriter(fw,format);
writer.write(document);
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args){
new CreateXml().create("book.xml");
}
}
这样的话,就生成了一个简单的xml文件如下所示:
<?xml version="1.0" encoding="GBK"?>
<计算机图书>
<图书 isdn="a10.253042872768658">Think in java0
<作者>田小小</作者>
</图书>
<图书 isdn="a25.008161429145538">Think in java1
<作者>田小小</作者>
</图书>
<图书 isdn="a87.98573091148226">Think in java2
<作者>田小小</作者>
</图书>
<图书 isdn="a9.459176830404992">Think in java3
<作者>田小小</作者>
</图书>
</计算机图书>
这些都是xml的简单应用,其实xml广泛应用于web开发中,在以后的编程中将会使用xml更多的知识!!
一:一个简单的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<class>
<student id="hhh" name="kaka">
<name id ="tt" name="kak">周星星</name>
<age id="ttt">45</age>
<sex id="mao">男</sex>
</student>
<student id="aa">
<name id="kk">田小小</name>
<age id="nn">20</age>
<sex id="ll">男</sex>
</student>
<student id="55">
<name id="hha">小小</name>
<age id="kka">45</age>
<sex id="maomao">男</sex>
</student>
</class>
二:用dom4j解析出所有元素和属性:
package xml;
import java.io.File;
import java.util.*;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ReaderXml2 {
public void read() throws Exception {
//创建一个xml读取器
SAXReader reader = new SAXReader();
//读取文件
//路径,现在4。xml是直接放在项目的根目录下Document document = reader.read(new File("4.xml"));
//若不是放在根目录下,那么就要指定一个路径,避免出错
String path = this.getClass().getResource("/4.xml").getPath();
//Document是文档
Document document = reader.read(new File(path));
//获取根元素
Element element = document.getRootElement();
element(element);
}
//递归取出所有元素
public void element(Element element){
System.out.println("元素: "+element.getName());
//如果只是一个普通的元素没有子元素的,就直接输出
if(element.isTextOnly()==true){
System.out.println("元素 名称: "+element.getName()+"||||"+"元素内容:"+element.getText());
}else{
//如果里面还有字元素的,那么就把它里面的内容输出
List elements = element.elements();
int size = elements.size();
for(int i=0;i<size;i++){
Element emt = (Element)elements.get(i);
//System.out.println("元素:"+emt.getName());
//递归遍历出所有的元素
element(emt);
//某一个元素的所有属性列出来
arr(emt);
}
}
}
public void arr(Element element){
//取出所有的属性,放在list中
List att = element.attributes();
int size = att.size();
for(int i=0;i<size;i++){
//依次取出属性
Attribute attb = (Attribute)att.get(i);
//输出元素名称,属性名称和属性内容
System.out.println("元素名称"+element.getName()+" 属性名称:"+attb.getName()+"属性内容:"+attb.getValue());
}
}
public static void main(String[] args){
try {
new ReaderXml2().read();
} catch (Exception e){
e.printStackTrace();
}
}
}
三:用访问者模式快速读取xml文件:
下面这个xml是一个加载和连接Oracle数据库的xml配置文件
<?xml version="1.0" encoding="utf-8"?>
<oracle>
<drivername>oracle.jdbc.driver.OracleDriver</drivername>
<url>jdbc:oracle:thin:@192.168.6.4:1521:orcl</url>
<dbname>scott</dbname>
</oracle>
编写访问者设计模式,读取该文件:
package xml;
import java.io.File;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.VisitorSupport;
import org.dom4j.io.SAXReader;
public class Visitorreader {
public void load(String xmlfile){
SAXReader reader = new SAXReader();
String path = this.getClass().getResource(xmlfile).getPath();
try {
Document doc = reader.read(new File(path));
doc.accept(new Myvisitor());
} catch (DocumentException e) {
e.printStackTrace();
}
}
//访问者模式
class Myvisitor extends VisitorSupport{
@Override
public void visit(Attribute node) {
System.out.println("属性名称:"+node.getName()+"\t\t"+"属性内容:"+node.getValue());
}
@Override
public void visit(Element node) {
System.out.println("元素名称:"+node.getName()+"\t\t"+"元素内容:"+node.getText());
}
}
public static void main(String[] args){
new Visitorreader().load("/4.xml");
}
}
<dbpw>tiger</dbpw>
</oracle>
从上面的程序中我们可以看出,很简单,比第一个列子中的代码少了很多。而且这样的读取后,我们可以再编写一个连接数据库的工具类,把上面的读取方法直接加上去,就可以了,就避免了我们在使用工具类连接数据库的时候,由于服务器的不同而修改多次的代码,若要修改,我们直接修改xml文件,就可以很方面的解决,在此就不多加描述了
四。使用dom4j技术创建xml文件
package xml;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class CreateXml {
private void create(String xmlFileName){
//
DocumentFactory factory = new DocumentFactory();
Document document = factory.createDocument();
Element root = document.addElement("计算机图书");
for(int i=0;i<4;i++){
Element book = root.addElement("图书");
book.setText("Think in java"+i);
book.addAttribute("isdn","a"+Math.random()*100);
Element e = book.addElement("作者");
e.setText("田小小");
}
OutputFormat format = new OutputFormat(" ",true,"GBK");
try {
FileWriter fw = new FileWriter(xmlFileName);
XMLWriter writer = new XMLWriter(fw,format);
writer.write(document);
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args){
new CreateXml().create("book.xml");
}
}
这样的话,就生成了一个简单的xml文件如下所示:
<?xml version="1.0" encoding="GBK"?>
<计算机图书>
<图书 isdn="a10.253042872768658">Think in java0
<作者>田小小</作者>
</图书>
<图书 isdn="a25.008161429145538">Think in java1
<作者>田小小</作者>
</图书>
<图书 isdn="a87.98573091148226">Think in java2
<作者>田小小</作者>
</图书>
<图书 isdn="a9.459176830404992">Think in java3
<作者>田小小</作者>
</图书>
</计算机图书>
这些都是xml的简单应用,其实xml广泛应用于web开发中,在以后的编程中将会使用xml更多的知识!!
发表评论
-
OpenBravo 在eclipse下项目建立
2012-09-28 11:12 1100OpenBravo 在eclipse下项目建立 介绍 Open ... -
Spring 3.0 基于Annotation 的依赖注入实现详解
2012-04-13 13:36 821今天在网上看到有关spri ... -
java定时操作的三种方式
2012-04-12 10:40 10441)java.util.Timer 这个方法应该是最常用的,不 ... -
把数据存在磁盘中
2011-10-18 11:08 1121一:数据封转成集合,保存在磁盘的临时文件中 /** * 写 ... -
java程序创建导入,导出,创建数据库
2011-08-23 15:45 2802在做项目的时候,往往会遇到数据库创建,备份,还原等功能,jav ... -
java自动生成目录树
2011-07-29 19:41 7550今天写了一天的目录树 ... -
java过滤图片
2011-07-17 13:23 2314有时候我们再写项目的时候需要对读取或保存文件进行过滤,便于安全 ... -
java实现Excel和图片的打印预览
2011-07-09 18:00 9070今天忙了一天,终于把打印预览的功能给实现了,因为昨天写了两个打 ... -
java打印Excel
2011-07-09 14:25 4310首先先下载jcom.jar和jcom.dll文件,把dll文件 ... -
java实现图片的打印
2011-07-08 17:40 18137打印图片,支持打印gif,jpg,png等格式图片的 pack ... -
刷新Jtable
2011-06-30 16:40 3034以前在做GUI开发的时候,往往会碰到Jtable的数据不能刷新 ... -
自定义画图
2011-06-29 15:43 1104近来在做绘图程序,对自定义绘图很模糊,一直想了很久,因为在项目 ... -
hibernate的复习
2011-06-17 15:31 876今天突然感觉到自己学的东西,都快忘完了,而且可能以后会用到,所 ... -
Tomcat环境变量配置
2011-06-17 10:39 17381.===> 进入bin目录下,双击startup.ba ... -
一个简单的工资支付系统
2011-06-13 15:13 1209帮同学做了一个工资支付系统,感觉功能还可以,基本上达到了要求, ... -
sqlserver驱动jar包
2011-04-30 12:18 1455近来在网上找了了sqlserver的驱动jar包感觉到很难,弄 ... -
文件下载
2011-04-29 11:44 938在android开发中,会经常用的文件下载的功能,比如有时候我 ... -
android简单的乘法运算
2011-04-27 09:44 1781最近在自学android,自己在学习的时候,做了一个简单的乘法 ... -
Android_SDK与Eclipse最新版开发环境搭建
2011-03-13 16:32 802android的安装步骤收集 -
java垃圾回收机制详解
2011-02-07 12:24 777今天在看java基础的时候 ...
相关推荐
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
在解析XML文件时,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过`DOM4J`的`SAXReader`类进一步处理这个对象。例如: ```java SAXReader reader = new SAXReader(); ...
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得...通过理解上述DOM4J解析XML的基本概念、操作和示例,开发者可以有效地在Java项目中处理XML数据,无论是读取、创建还是修改XML文件。
在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j 生成 XML 文档非常简单。首先,我们需要创建一个 Document 对象,然后添加元素和属性。下面是一个生成 XML 文档的...
在解析XML时,DOM4J有两种主要的解析方式:SAX和DOM。SAX是一种基于事件的解析器,适用于处理大型XML文档,因为它不会将整个文档加载到内存中。DOM,即文档对象模型,会构建一个完整的XML树,适合小型或中等大小的...
通过学习和实践这些基本操作,你可以熟练掌握DOM4J解析XML的技巧,为你的Java项目中处理XML数据提供强大的支持。在项目中遇到具体问题时,可以参考DOM4J的官方文档,或利用在线资源进行更深入的学习。
### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J是一个Java库,用于处理XML文档。它的设计目标是为了提供一个简单、易于使用的API来处理XML文件,同时保持性能上的优势。与Java标准库中的DOM实现相比,DOM4J...
4. **XML文档构建**:DOM4J允许动态构建XML文档,通过`DocumentFactory`可以创建XML元素,并逐层添加子元素和属性,构建复杂的XML结构。 5. **XML文档操作**:DOM4J提供了丰富的API,如添加、删除、移动和复制XML...
通过这个实例,我们可以学习到DOM4J解析XML的基本操作,包括加载XML文件、访问和修改元素、以及保存更改。这只是一个简单的例子,DOM4J库还提供了更高级的功能,如XPath查询、事件驱动的处理模式等,可以满足更复杂...
在本示例中,我们将深入探讨如何使用DOM4J解析XML文件,以`CacheInit.java`作为我们的核心代码示例,并参考`emailTemplateConfig.xml`作为实际操作的对象。 首先,让我们了解XML(eXtensible Markup Language)。...
要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...
使用DOM解析XML的基本步骤如下: 1. 创建DocumentBuilderFactory实例。 2. 使用DocumentBuilderFactory创建DocumentBuilder实例。 3. 使用DocumentBuilder的parse()方法解析XML文件,得到Document对象。 4. 通过...
在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...
DOM4J是一个强大的Java库,专门用于解析XML文档。它提供了简单易用的API,使得开发者可以更加方便地处理XML数据。DOM4J的核心优势在于它的面向接口编程设计,这使得它能够在不同的解析机制间灵活切换,如DOM、SAX和...
本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...