用Dom4j来解析XML文件

Dom4j jar包地址:https://pan.baidu.com/s/1eNExExlFHIecfW_6YkXpvw  提取码:w5om

首先解压Dom4j jar包,解压后如下

然后把  dom4j-1.6.1.jar  复制放到工程目录下(集成开发工具是myeclipse)

在myeclipse工程下直接右键dom4j-1.6.1.jar,点击Build Path → Add to Build Path

myeclipse自动导入jar包,然后就可以使用jar包提供的接口了。

我们创建一个book.xml文件放到src目录下

book.xml文件内容如下:

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

<书架>
  <书 >
    <书名>时间简史</书名>
    <作者>霍金</作者>
    <售价>60</售价>
  </书>
  <书>
    <书名>广义相对论</书名>
    <作者>爱因斯坦</作者>
    <售价>65</售价>
  </书>
</书架>

Dom4j_parseXML.java编写解析代码

需要导入的包:

import java.io.FileOutputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

注意:除了FileOutputStream和List不是dom4j包的,其他的都是

创建解析器

//创建dom4j解析器
SAXReader reader = new SAXReader();
//加载document对象
Document document = reader.read("src/book.xml");

得到某个节点的内容

//拿到根节点
Element root = document.getRootElement();
//拿到所有的书节点
List<Element> list = root.elements("书");
//拿到第二本书
Element bookE1 = list.get(1);
//获取售价文本
System.out.println(bookE1.elementText("售价"));

遍历所有元素节点

public static void ergodic(Document document) {
  treeWalk( document.getRootElement() );
}

public static void treeWalk(Element element) {
  for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
    Node node = element.node(i);
    if ( node instanceof Element ) {
      System.out.println(node.getName());
      treeWalk( (Element) node );
    }
  }
}

修改某个元素节点的主体内容

//获取根节点
Element root = document.getRootElement();
//拿到第二种书节点
Element bookEL = (Element) root.elements("书").get(1);
//拿到售价节点
Element priceE1 = bookEL.element("售价");
//改变主体内容
priceE1.setText("55");

//将结果保存到硬盘上

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),OutputFormat.createPrettyPrint());
writer.write(document);
writer.close();

向指定元素节点中添加子元素节点

//获取根节点
Element root = document.getRootElement();
//拿到第一种书节点
Element bookEL = (Element) root.elements("书").get(0);
//拿到售价节点
Element priceE1 = bookEL.element("售价");

//添加子节点
priceE1.addElement("内部价").setText("50");

//将结果保存到硬盘上

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),OutputFormat.createPrettyPrint());
writer.write(document);
writer.close();

向指定元素节点上增加同级元素节点

//获取根节点
Element root = document.getRootElement();
//拿到第一种书节点
Element bookEL = (Element) root.elements("书").get(0);

//给书节点添加子节点
bookEL.addElement("批发价").setText("30");

//将结果保存到硬盘上

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),OutputFormat.createPrettyPrint());
writer.write(document);
writer.close();

删除指定的元素节点

Element root = document.getRootElement();
Element bookEL = (Element) root.elements("书").get(0);
Element insideprice = bookEL.element("售价").element("内部价");
//删除
insideprice.getParent().remove(insideprice);

//将结果保存到硬盘上

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),OutputFormat.createPrettyPrint());
writer.write(document);
writer.close();

操作文件的属性

//获取根节点
Element root = document.getRootElement();
//拿到第一种书节点
Element bookEL = (Element) root.elements("书").get(0);

//增加一个属性
bookEL.addAttribute("类", "科普");

//将结果保存到硬盘上

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),OutputFormat.createPrettyPrint());
writer.write(document);
writer.close();

以上就是用dom4j来解析XML文件的几种方式

原文地址:https://www.cnblogs.com/pw-fight/p/10400288.html

时间: 2024-11-07 21:55:28

用Dom4j来解析XML文件的相关文章

DOM4J方式解析XML文件

dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory dom4j是一个简单的开源库,用于处理XML. XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP. dom4j下载地址:http://download.csdn.net/detail/ww6055/8880397 dom4j的使用 下载了dom4j项目之后,解压缩,将其jar包(我的当前版本叫做d

在java项目中怎样利用Dom4j解析XML文件获取数据

在曾经的学习.net时常常会遇到利用配置文件来解决项目中一些须要常常变换的数据.比方数据库的连接字符串儿等.这个时候在读取配置文件的时候.我们一般会用到一个雷configuration,通过这个类来进行直接读取,能够说这是程序中直接封装好的,包含配置文件里书写的格式等等.那么,假设.想要在配置文件里写一些其它的数据,直接以XML文件的格式进行书写.这个时候在后台怎样读取XML文件里的数据呢?这里利用Dom4j来解析XML文件里连接oracle数据库的xml数据. 在使用之前,首先要在自己的项目中

在java项目中如何利用Dom4j解析XML文件获取数据

在以前的学习.net时经常会遇到利用配置文件来解决项目中一些需要经常变换的数据,比如数据库的连接字符串儿等.这个时候在读取配置文件的时候,我们通常会用到一个雷configuration,通过这个类来进行直接读取,可以说这是程序中直接封装好的,包括配置文件中书写的格式等等.那么,如果,想要在配置文件中写一些其他的数据,直接以XML文件的格式进行书写,这个时候在后台如何读取XML文件中的数据呢?这里利用Dom4j来解析XML文件中连接oracle数据库的xml数据. 在使用之前,首先要在自己的项目中

java中采用dom4j解析xml文件

一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4j解析xml的具体操作. 二.代码详情    dom4j是一个第三方开发组开发出的插件,所以在我们使用dom4jf的时候我们要去下载一下dom4j对应版本的jar导入在我们项目中.  1)xml文件: <?xml version="1.0" encoding="UTF-8&

使用DOM4J解析XMl文件与读取XML文件

XML文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <bookstore> 3 <book id="1"> 4 <name>冰与火之歌</name> 5 <author>乔治马丁</author> 6 <year>2014</year> 7 <price>89</price&g

java代码用dom4j解析xml文件的简单操作

时间: 2016/02/17 目标:为telenor的ALU Femto接口写一个采集xml文件并解析出locationName标签里的值,然后更新到数据库中. 从网上搜了下,有四种常用的解析xml的方式,包括DOM,JAXD,Dom4J,SAX(simple api for xml).我正好有Dom4j的jar包,就选择了Dom4j来解析xml. 前半截对xml的解析测试成功了.后面的数据库的连接,把数据更新到数据库的操作没有测试.对应的xml文件的行数有点多,没法上传,另写一个xml的文档上

使用dom4j创建和解析xml文件

使用dom4j创建和解析xml文件 在项目开发中,我们经常会遇到xml文件的创建和解析从别人接口得到的xml文件,而我们最常使用的组件是dom4j. 下面我就以代码来讲解一下如何使用dom4j来创建xml文件. 1.项目结构 在这里我们要,引入dom4j中的两个jar包,分别是: dom4j-1.6.1: jaxen-1.1-beta-6: 2.简要介绍 >创建xml 的主要类 DocumentHelper document = DocumentHelper.createDocument();

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

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

用DOM4J解析XML文件案例

用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图: 1.xml文件 <?xml version="1.0" encoding="UTF-8"?> <class> <student> <name>张三</name> <sid>111111</sid> </student> <stude