文档章节

dom4j详情

s
 sxl01890
发布于 2016/04/18 08:59
字数 678
阅读 21
收藏 1
点赞 1
评论 0


src/student.xml

<?xml version="1.0" encoding="UTF-8" ?>

<students>

<student number="itcast_0001">

<name>tom</name>

<age>18</age>

<sex>male</sex>

</student>

<student number="itcast_0002">

<name>jerry</name>

<age>16</age>

<sex>female</sex>

</student>

</students>


import java.io.File;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.io.SAXReader;


public class Demo1 {


/**

*  将xml文档 加载,获得document对象, 

*  将document对象 以字符串的形式输出

* @throws DocumentException 

*/

public static void main(String[] args) throws DocumentException {

//1 创建解析器 

SAXReader reader = new SAXReader();

    //2 使用解析器,加载文档

Document document = reader.read(new File("src/student.xml"));

    //3 将文档对象转化成string

String xml = document.asXML();

      System.out.println(xml);

}


}


import java.io.File;

import java.util.Iterator;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;


public class Demo2 {


/**

* 查 ==> 文档中所有学生信息

* @throws DocumentException 

*/

public static void main(String[] args) throws DocumentException {

//1 创建解析器 

SAXReader reader = new SAXReader();

    //2 使用解析器,加载文档

Document document = reader.read(new File("src/student.xml"));

//3 获得根元素

Element students = document.getRootElement();

//4 迭代根元素下的所有student元素

Iterator<Element> it =  students.elementIterator("student");

while(it.hasNext()){

Element student = it.next();

//5 获得student元素上的number属性

String number =  student.attributeValue("number");

System.out.println(number);

//6 再找 student元素下的name age sex 子元素

//7 获得子元素的内容

Element nameELe = student.element("name");

String name = nameELe.getText();

String age = student.elementText("age");

String sex = student.elementText("sex");

System.out.println(name+"==>"+age+"==>"+sex);

}

}


}



import java.io.File;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.OutputStreamWriter;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;


public class Demo3_2 {


/**

* 增: 增加一个学生   itcast_0003 杰克 20 male

* @throws DocumentException 

* @throws IOException 

*/

public static void main(String[] args) throws DocumentException, IOException {

//1 创建解析器 

SAXReader reader = new SAXReader();

    //2 使用解析器,加载文档

Document document = reader.read(new File("src/student.xml"));

//3 获得根元素

Element root  = document.getRootElement();

//4 为根元素添加student子元素,和属性.

Element studentEle = root.addElement("student").addAttribute("number", "itcast_0003");

//5 为student添加 name age sex 子元素和内容

studentEle.addElement("name").addText("杰克");

studentEle.addElement("age").addText("20");

studentEle.addElement("sex").addText("male");

//6 回写

//1>创建格式化器

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("UTF-8"); //解码  encoding="UTF-8"

//2>创建写入器

//XMLWriter writer = new XMLWriter(new FileWriter("src/student_copy.xml"),format);

//XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("src/student_copy.xml"),"GBK"),format);

XMLWriter writer = new XMLWriter(new FileOutputStream("src/student_copy.xml") ,format);

//3>将文档写入文件

writer.write(document);

//4>关闭资源

writer.close();

//简单的不乱码的方法: 使用字节流写入, 不要使用字符流. 使用字节流永远不会乱码.

}


}




import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.UnsupportedEncodingException;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;


public class Demo4_2 {


/**

*  删除: 删除学号为itcast_0001 的学生

* @throws DocumentException 

* @throws IOException 

*/

public static void main(String[] args) throws DocumentException, IOException {

//1 创建解析器 

SAXReader reader = new SAXReader();

    //2 使用解析器,加载文档

Document document = reader.read(new File("src/student.xml"));

//3 定义xpath表达式

String xpath ="//student[@number='itcast_0001']";

//4 根据xpath找出要删除的元素

Element stuEle = (Element) document.selectSingleNode(xpath);

//5 删除

stuEle.getParent().remove(stuEle);

//6回写

//1>新建格式化器

OutputFormat format = OutputFormat.createPrettyPrint();

//2>新建写入器

XMLWriter writer = new XMLWriter(new FileOutputStream("src/student_copy.xml"),format);

//3>写入

writer.write(document);

//4>关闭资源

writer.close();

}


}


© 著作权归作者所有

共有 人打赏支持
s
粉丝 3
博文 34
码字总数 55191
作品 0
浦东
Hibernate 4.16.Final 发布

Hibernate ORM 4.1.6.Final 刚刚发布,这是一个小的 bug 修复版本,修复了 16 个问题,详情请看 changelog 。 下面是需要注意的几个问题: HHH-6130 - Criteria 查询中没有正确处理联合 map ...

红薯 ⋅ 2012/08/09 ⋅ 8

Mr. Sanders/ApkCustomizationTool

ApkCustomizationTool apk定制工具,用于渠道打包等自定义apk。此工具使用JavaFX开发需要JDK1.8的支持。 此工具适合渠道及相关人员!(不懂编程概念的相关人员) 注意:请在环境变量里面配置好签...

Mr. Sanders ⋅ 2015/10/21 ⋅ 0

DOM4J解析XML

Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。很多Java软件读写XML都在使用dom4j,Sun公司的JAXM也是用dom4j。Hib...

iborder ⋅ 2016/10/18 ⋅ 0

Android 创建与解析XML(五)—— Dom4j方式

1、Dom4j概述 dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support fo......

长平狐 ⋅ 2013/01/06 ⋅ 0

java解析xml -- DOM4J JDOM DOM SAX 之比较

DOM4J http://dom4j.sourceforge.net 虽然DOM4J代表了完全独立的开发结果,但最初,它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XML Schema支持以...

o0江湖郎中0o ⋅ 2014/01/07 ⋅ 2

dom4j 2.0.1 发布,XML 操作库

dom4j 2.0.1 已发布,该版本主要是修复了 bug,详细如下: 修复 QName 序列化 (#17) DocumentException 初始化出现 nested exception (#20) 多线程测试中意外发生的错误 (#14) 下载地址 dom4...

淡漠悠然 ⋅ 2017/07/06 ⋅ 22

XML生成和解析

1、DOM方式解析XML 给予DOM的解析方式,是把整个XML文档加载到内存,转化成DOM树,可以随机的访问DOM树的任何数据,速度快、比较灵活,但是消耗资源比较多,不适用大的xml文档解析,测试超过...

祁猛 ⋅ 2016/10/19 ⋅ 0

Dom4j的使用(全而好的文章)

Dom4j 使用简介 作者:冰云 icecloud(AT)sina.com 时间:2003.12.15 DOM4J是dom4j.org出品的一个开源XML解析包,它的网站中这样定义: Dom4j is an easy to use, open source library for w...

倚小丁 ⋅ 2010/11/02 ⋅ 0

常用框架(Dom4j)

常用框架(Dom4j) 1、XML 基本的定义 使用XML可以有效的实现对象到字符串的转换 基于Java处理XML dom4j-->不是j2se所自带的,需要通过网络下载这个文件包才能使用。 dom4j的安装 1、下载dom4j...

pmos ⋅ 2016/07/27 ⋅ 0

XML的4中解析速率分析

JUnit是Java提供的一种进行单元测试的自动化工具。测试方法可以写在任意类中的任意位置。使用JUnit可以没有main()入口进行测试。 DOM4J在灵活性和对复杂xml的支持上都要强于DOM DOM4J的应用范...

Favour ⋅ 2016/05/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Linux kernel脉络和主干总结

写在前面 前人常说,对Linux操作系统/内核的理解,是计算机行业从业者的内功,决定了你在技术领域想走多远。但内核的庞大以及学习曲线之陡峭,总让我在学习途中觉得犹如“管中窥豹”。 随着工...

Markz0928 ⋅ 27分钟前 ⋅ 0

在gcc中使用intel风格的内联汇编

很简单,内联汇编使用asm(“.intel_syntax noprefix/n”)声明一下,以后的内联汇编就可以用intel风格了,构建可执行文件时给gcc加上-masm=intel参数。 先写一个小程序测试一下: [cpp] view...

simpower ⋅ 38分钟前 ⋅ 0

NIO 之 ByteBuffer实现原理

相关文章 BIO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 Channel实现原理 前言 Java NIO 主要由下面3部分组成: Buffer Channel Selector 在传统IO中,流是基于字节的方式进行...

轨迹_ ⋅ 47分钟前 ⋅ 0

Jenkins docker权限问题

环境Ubuntu Server 工具 jenkins-war:2.89.2 报错信息 Cannot connect to the Docker daemon. Is the docker daemon running on this host?Build step 'Execute shell' marked build as fai......

Pulsar-V ⋅ 47分钟前 ⋅ 0

180621-一个简单的时间窗口设计与实现

如何设计一个计数的时间窗口 时间窗口,通常对于一些实时信息展示中用得比较多,比如维持一个五分钟的交易明细时间窗口,就需要记录当前时间,到五分钟之前的所有交易明细,而五分钟之前的数...

小灰灰Blog ⋅ 今天 ⋅ 0

Android之Dalvik、ART、JIT、AOT

Android之Dalvik、ART、JIT、AOT 本文内容:Dalvik、ART、JIT、AOT之间关系 本文定位:知识记录 学习过程记录,加深理解,提升文字组合表达能力。也希望能给学习的同学一些灵感 本文整理于[...

lichuangnk ⋅ 今天 ⋅ 0

Thrift RPC实战(五) thrift连接池

Thrift本身没有提供连接池,我们可以用Apache Commons Pool2来实现一个 一、定义对象工厂 BasePooledObjectFactory<T> extends BaseObject implements PooledObjectFactory<T> public class......

lemonLove ⋅ 今天 ⋅ 0

git 命令简写

简写 命令 g git gst git status gd git diff gdc git diff --cached gdv git diff -w "$@" | view - gl git pull gup git pull --rebase gp git push gc git commit -v gc! git commit -v ......

charley158 ⋅ 今天 ⋅ 0

Java中的锁使用与实现

1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。 在Lock出现之前,java程序是靠synchronized关键字实现锁功能的,而Java SE5之后,...

ZH-JSON ⋅ 今天 ⋅ 0

Intellij IDEA神器常用技巧四-类和方法注释模板设置

IDEA自带的注释模板不是太好用,我本人到网上搜集了很多资料系统的整理了一下制作了一份比较完整的模板来分享给大家,我不是专业玩博客的,写这篇文章只是为了让大家省事。 这里设置的注释模...

Mkeeper ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部