使用dom4j须要导入jar包

jar包下载地址:http://pan.baidu.com/s/1o65jWRw

将dom4j-1.6.1.jar包导入Eclipse

book2.xml

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

>

<书架>
<书>
<书名>JAVA</书名>
<作者>XXXXXX</作者>
<售价>23333</售价>
</书>
<书>
<书名>ANDROID</书名>
<作者>XXXXXX</作者>
<售价>23333</售价>
</书>
</书架>

解析book2.xml这个文件。

方法:

获取文档的根结点:

Element root = document.getRootElement();

获取某个结点的子节点

Element element = root.element();

获取某个结点下的全部子节点:

List elements = root.elements();

遍历该结点下的全部子节点

以递归的方式进行

public class dom4j {

	public static void main(String[] args) throws Exception {
// method_1();
method_2();
} private static void method_2() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read("book2.xml");
Element root = document.getRootElement();
parse(root);
} private static void parse(Element ele) {
// 处理当前元素包括的全部属性
parseAttribute(ele);
// 获取当前元素包括的全部
List el = ele.elements();
for (Object e : el) {
Element element = (Element) e;
// 假设该元素的内容不是仅仅包括字符串
if (!element.isTextOnly()) {
parse(element);
} else {
// 处理当前 元素的所有属性
parseAttribute(element);
// 获取当前元素的内容
System.out.println(element.getQName().getName() + "-->"
+ element.getText());
}
}
} /**
* 处理元素属性
*
* @param ele
*/
private static void parseAttribute(Element ele) {
List attributes = ele.attributes();
for (Object e : attributes) {
Attribute attribute = (Attribute) e;
System.out.println(ele.getQName().getName() + "元素的"
+ attribute.getQName().getName() + "属性为"
+ attribute.getValue());
}
} private static void method_1() throws Exception {
// 获取解析器
SAXReader reader = new SAXReader();
// 解析xml获代替表整个文档的dom对象
Document document = reader.read("book2.xml");
// 获取根结点
Element rootElement = document.getRootElement();
// 获取书名
String bookName = rootElement.element("书").element("书名").getText();
System.out.println("bookName--: " + bookName);
} }

XML(四)dom4j解析XML的更多相关文章

  1. java基础 xml 使用dom4j解析 xml文件 servlet根据pattern 找到class

    package com.swift.kaoshi; import java.io.File; import java.util.List; import java.util.Scanner; impo ...

  2. 【java项目实战】dom4j解析xml文件,连接Oracle数据库

    简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...

  3. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

  4. dom4j解析xml文档全面介绍

    一.dom4j介绍 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点, ...

  5. xml的Dom4j解析规则

    一,xml的样本 <?xml version="1.0" encoding="utf-8"?> <contactList> <co ...

  6. Java进阶(二十七)使用Dom4j解析XML文件

    使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...

  7. 源生API解析XML文档与dom4j解析XML文档

    一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可 ...

  8. 【学习笔记】关于DOM4J:使用DOM4J解析XML文档

    一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...

  9. Java中使用DOM4J来生成xml文件和解析xml文件

    一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...

随机推荐

  1. Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2) A. The King's Race

    http://codeforces.com/contest/1075/problem/A On a chessboard with a width of nn and a height of nn, ...

  2. 网络编程之IO复用:select or epoll

    对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接.同时处理 ...

  3. Codeforces 899B Months and Years

    题目大意 给定 $n$($1\le n\le 24$)个正整数 $a_1,\dots, a_n$ 判断 $a_1$ 到 $a_n$ 是否可能为连续 $n$ 个月份的天数. 解法 由于 $n\le 24 ...

  4. BZOJ4010 [HNOI2015]菜肴制作 【拓扑排序 + 贪心】

    题目 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予 1到N的顺序编号,预估质量最高的菜肴编号为1.由于菜肴之间 ...

  5. TypeToken获取运行时泛型类型

    最近正好使用到了Guava的TypeToken来获取泛型的类型信息 比如,泛型父类需要获取其子类定义的泛型类型时: public abstract class GenericClazz<V> ...

  6. python time模块 sys模块 collections模块 random模块 os模块 序列化 datetime模块

    一 collections模块 collections模块在内置的数据类型,比如:int.str.list.dict等基础之上额外提供了几种数据类型. 参考博客 http://www.pythoner ...

  7. C语言扩展题

    1.使用cmake来创建c语言工程 2.使用gcc来编译源代码 3.下载redis,并且编译运行redis(注:redis目前是c语言编写的,而且是主要是linux平台,在windows平台编译比较麻 ...

  8. 两个VLC实现播放串流测试 (转)

    实现原理: 一个VLC打开视频文件发布串流(格式HTTP.RTP.RTSP等),另一个VLC打开串流播放 发布串流步骤: 1.菜单“媒体”->“流”,先添加视频文件.选择“串流”,如下图: 2. ...

  9. 反汇编->C++引用与指针

    先看一段最简单代码 #include<iostream> #include<stdlib.h> using namespace std; int main() { int te ...

  10. configure: error: C++ preprocessor "/lib/cpp" fails sanity check

    configure: error: C++ preprocessor "/lib/cpp" fails sanity check 参考链接: error: C++ preproce ...