XML解析之最流行的方式:DOM4J

dom4j是使用java语言编写的,用于读,写,操作XML的一套组件

dom4j是一个开源的java组件,可从http://sourceforge.net/projects/dom4j/files/下载。其解压后有一个dom4j-1.6.1.jar文件,这个就是需要引入的包,其dom4j的所有的接口都在org.dom4j包中定义,主要接口如下:

XML写入文件:DOM4JWriter.java
package org.lxh.xml.dom4j ;
import java.io.* ;
import org.dom4j.* ;
import org.dom4j.io.* ;
public class DOM4JWriter {
public static void main(String args[]) throws Exception {
Document doc = DocumentHelper.createDocument() ;
Element addresslist = doc.addElement("addresslist") ; // 现在定义一个根节点
Element linkman = addresslist.addElement("linkman") ;
Element name = linkman.addElement("name") ;
Element email = linkman.addElement("email") ;
name.setText("偶my耶") ;
email.setText("email") ;
OutputFormat format = OutputFormat.createPrettyPrint() ;
format.setEncoding("UTF_8") ; XMLWriter writer = new XMLWriter(new FileOutputStream(new File("e:" + File.separator + "output.xml")),format) ;
writer.write(doc) ; // 进行输出
writer.close() ;
}
}

dom4j读取文件DOM4JReader.java

package org.lxh.xml.dom4j ;
import java.io.* ;
import java.util.* ;
import org.dom4j.* ;
import org.dom4j.io.* ;
public class DOM4JReader {
public static void main(String args[]) throws Exception {
File file = new File("d:" + File.separator + "output.xml") ;
SAXReader reader = new SAXReader() ;
Document doc = reader.read(file) ; Element root = doc.getRootElement() ; Iterator iter = root.elementIterator() ;
while(iter.hasNext()){
Element linkman = (Element) iter.next() ;
System.out.println("姓名:" + linkman.elementText("name")) ;
System.out.println("emeil:" + linkman.elementText("email")) ;
}
}
}

输出结果:

从程序中可以清楚的发现,DOM4J本身是需要使用SAX建立解析器然后通过文档找到根节点,在通过根节点找到每一个节点的内容。

java基础篇---XML解析(二)的更多相关文章

  1. java基础篇---XML解析(一)

    XML是可扩展标记语言 在XML文件中由于更多的是描述信息的内容,所以在得到一个xml文档后应该利用程序安装其中元素的定义名称去除对应的内容,这样的操作称为XML解析. 在XML解析中W3C定义SAX ...

  2. java基础71 XML解析中的【DOM和SAX解析工具】相关知识点(网页知识)

    本文知识点(目录):本文下面的“实例及附录”全是DOM解析的相关内容 1.xml解析的含义    2.XML的解析方式    3.xml的解析工具    4.XML的解析原理    5.实例    6 ...

  3. java基础74 XML解析中的SAX解析相关知识点(网页知识)

    1.SAX解析工具 SAX解析工具:是Sun公司提供的,内置JDK中.org.xml.sax.*         点击查看: DOM解析相关知识:以及DOM和SAX解析的原理(区别) 2.SAX解析的 ...

  4. java基础篇---HTTP协议

    java基础篇---HTTP协议   HTTP协议一直是自己的薄弱点,也没抽太多时间去看这方面的内容,今天兴致来了就在网上搜了下关于http协议,发现有园友写了一篇非常好的博文,博文地址:(http: ...

  5. java基础之XML

    目录 java基础之XML 1. XML解析概述 2. DOM4J介绍 2.1 常用包 2.2 内置元素 2.2 Element类 2.3 Attribute类 2.4 常用操作 3. 代码演示 3. ...

  6. Java基础篇(JVM)——类加载机制

    这是Java基础篇(JVM)的第二篇文章,紧接着上一篇字节码详解,这篇我们来详解Java的类加载机制,也就是如何把字节码代表的类信息加载进入内存中. 我们知道,不管是根据类新建对象,还是直接使用类变量 ...

  7. 金三银四跳槽季,BAT美团滴滴java面试大纲(带答案版)之一:Java基础篇

    Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可 ...

  8. java基础篇---I/O技术(三)

    接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象 ...

  9. Java基础篇 - 强引用、弱引用、软引用和虚引用

    Java基础篇 - 强引用.弱引用.软引用和虚引用 原创零壹技术栈 最后发布于2018-09-09 08:58:21 阅读数 4936 收藏展开前言Java执行GC判断对象是否存活有两种方式其中一种是 ...

随机推荐

  1. Mac添加快捷键开启应用程序(转)

    最近使用终端比较多点,打开终端的方法有几种:比较常用有把终端添加到Dock栏上,然后就是利用Spotlight搜索Terminal来打开.但是两种方式还是让我感觉不太满意. 当开启的程序比较多的时候, ...

  2. golang 学习笔记 ---数组/字符串/切片

    数组 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.数组的长度是数组类型的组成部分.因为数组的长度是数组类型的一个部分,不同长度或不同类型的数据组成的数组都是不同的类 ...

  3. mvc 文件压缩 减少文件大小

    using System; using System.Collections.Generic; using System.IO.Compression; using System.Linq; usin ...

  4. Visual C++中的TCHAR

    为了使代码兼容ASCII码和Unicode编码,微软公司还提供了通用字符类型TCHAR. 通用字符类型的含义是,假设在项目属性中选择"Unicode字符集".则TCHAR代表WCH ...

  5. C++ STL vector(向量容器)的使用(附完整程序代码)

    一.简单介绍 Vectors 包括着一系列连续存储的元素,其行为和数组类似. 訪问Vector中的随意元素或从末尾加入元素都能够在O(1)内完毕,而查找特定值的元素所处的位置或是在Vector中插入元 ...

  6. Effective C++ 34

    34.将文件间的编译依赖性降到最低. 对于一个大型程序,其结构是错综复杂的.当你对一个类进行一些改动时.改动的不是接口,而是类的实现,即仅仅是一些细节部分,但又一次生成程序时,所实用到这个类的的文件都 ...

  7. python 视频 图像帧提取

    import cv2 vidcap = cv2.VideoCapture('005.avi') success,image = vidcap.read() count = 0 success = Tr ...

  8. [转]session和cookie的区别和联系,session的生命周期,多个服务部署时session管理

    Session和Cookie的区别 对象 信息量大小 保存时间 应用范围 保存位置 Session 小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟) 单个用户 服务器端 Cookie 小 ...

  9. 译: 3. Axis2快速入门指南

    本指南的目的是让您尽快使用Axis2开始创建服务和客户端.我们将采用一个简单的StockQuote服务,向您展示可以创建和部署它的一些不同方式,以及快速查看Axis2附带的一个或两个实用程序.然后,我 ...

  10. 深度学习领域的Papers

    https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap 深度学习论文阅读路线图 Deep Learning Papers R ...