Java解析XML文件的方法有多种,个人感觉最常用的是使用Dom4j来解析XML文件。下面就简单介绍下Dom4j的基础使用。

  Dom4j需要jar包的支持,大家可以从网络上下载,如dom4j-1.6.1.jar

  下载好JAR包以后,只要导入我们的工程就可以使用了,Java WEB工程导入路径为:WebRoot/WEB-INF/lib目录下;

  代码示例:

一、查看xml文档基础操作(以封装方法展示):

    public static  void run() throws Exception {
//获取Dom4j解析器对象
SAXReader reader = new SAXReader();
//读取XML,返回Document对象
Document document = reader.read("src/Demo.xml");
//获取根节点
Element rootElement = document.getRootElement();
//获取根节点下的全部名称为book的元素,得到元素集合
List<Element> elements = rootElement.elements("book");
//选择某一个元素
Element shu2 = elements.get(1);
//获取元素下的摸个目标元素
Element name2 = shu2.element("name");
//获取元素的文本内容 getText()
System.out.print("书名是:"+name2.getText());
}

二、插入一个xml元素并回写到xml文件的操作

    public static  void run2() throws Exception {
//获取Dom4j解析器对象
SAXReader reader = new SAXReader();
//读取XML,返回Document对象
Document document = reader.read("src/Demo.xml");
//获取根节点
Element rootElement = document.getRootElement();
//获取目标节点元素
Element shu1 = (Element) rootElement.elements("book").get(1);
//添加元素(addElement)和文本(addText);添加属性(addAttribute)
shu1.addElement("prise").addText("99.8 yuan").addAttribute("属性名", "属性值");
//设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
OutputFormat format = OutputFormat.createPrettyPrint();
//设置输出编码
format.setEncoding("utf-8");
//创建回写类,并指定xml路径与写入格式
XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
//回写
writer.write(document);
//成功
System.out.print("ok,mylydg");
}

三、在指定位置插入元素的操作

    public static  void run3() throws Exception {
//获取Dom4j解析器对象
SAXReader reader = new SAXReader();
//读取XML,返回Document对象
Document document = reader.read("src/Demo.xml");
//获取根节点
Element rootElement = document.getRootElement();
//获取目标节点元素
Element book = (Element) rootElement.elements("shu").get(1);
//通过DocumentHelper创建一个元素
Element prise = DocumentHelper.createElement("prise");
//设置元素文本
prise.setText("99.8 yuan");
//获得目标元素的子元素集合
List<Element> elements = book.elements();
//通过下标添加元素到指定集合位置
elements.add(0, prise);
//设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
OutputFormat format = OutputFormat.createPrettyPrint();
//创建回写类,并指定xml路径与写入格式
XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
//回写
writer.write(document);
//关闭流
writer.close();
//成功
System.out.print("ok,mylydg");
}

四、删除和更新的操作

    public static  void run4() throws Exception {
//获取Dom4j解析器对象
SAXReader reader = new SAXReader();
//读取XML,返回Document对象
Document document = reader.read("src/Demo.xml");
//获取根节点
Element rootElement = document.getRootElement();
//获取目标节点元素
Element book = (Element) rootElement.elements("shu").get(1);
//获取要删除的元素
Element prise = book.element("prise");
//删除
book.remove(prise);
//获取要更新的元素
Element name = book.element("name");
//更新
name.setText("new name");
//设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
OutputFormat format = OutputFormat.createPrettyPrint();
//创建回写类,并指定xml路径与写入格式
XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
//回写
writer.write(document);
//关闭流
writer.close();
//成功
System.out.print("ok,mylydg");
}

  以上就是Dom4j对xml解析的基本使用方法。

Java解析XML之Dom4j的更多相关文章

  1. java 解析xml(dom4j.jar)

    先导入jar包 <?xml version="1.0" encoding="UTF-8"?> <companys> <compan ...

  2. (补)Java解析XML之dom4j

    上次记得忘了记最流行的dom4j方法了,用的还是上次的那个XML文件 注:需要添加dom4j.jar文件 package com.xujingyang.dom4j; import org.dom4j. ...

  3. Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)

    [目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...

  4. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)

    1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...

  5. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  6. java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol

    java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol 完整错误信息: org.dom4j.Document ...

  7. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  8. Java 解析 XML

    Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...

  9. JAVA解析XML的四种方式

    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...

随机推荐

  1. Decorator 装饰(结构型)

    Decorator 装饰(结构型) 一:描述: Decorator装饰模式是动态地给一个对象增加一些额外的功能职责特性. 来替换以前使用的继承来静态扩展对象的功能,避免子类的增多,做到更灵活: 注:和 ...

  2. 在IE浏览器中url传参长度问题

    1.在这之前我一直以为,应该说是并没有去思考过,url地址传参的长度限制问题:知道在项目材料价格系统中遇到之后,才对这个问题进行了具体的探索.IE中最大的长度限制为2084个,用于get传递数据的长度 ...

  3. phpstorm快捷键总结

    如果映射的是eclipse的快捷键,又同时安装了英特尔的GPU软件,那么会有这个快捷键冲突 就是快速复制快捷键:ctrl+alt+方向键  会调用英特尔旋转屏幕,禁用掉即可 PhPStorm 是 Je ...

  4. flume中sink到hdfs,文件系统频繁产生文件,文件滚动配置不起作用?

    在测试hdfs的sink,发现sink端的文件滚动配置项起不到任何作用,配置如下: a1.sinks.k1.type=hdfs a1.sinks.k1.channel=c1 a1.sinks.k1.h ...

  5. 信号量及P/V操作

    有一个厕所,允许多个男生同时使用,也允许一个女生使用,但是不允许男女共用(那岂不是乱了套)通过厕所门口有一个三面小牌子来运行.一面是男生在用,第二面是女生在用,第三面是空.运行机制:第一个进入空厕所男 ...

  6. socket 简单了解

    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.   建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP的 ...

  7. leetcode 764.Largest Plus Sign

    根据题意的话就是在非0的地方开始寻找上下左右分别能够走到的最大步长的. 那么使用暴力的方法竟然leetcode还是给过了. class Solution { public: int orderOfLa ...

  8. 返回上一页面带数据 getCurrentPages 使用

    https://blog.csdn.net/She_lock/article/details/81099449

  9. Selenium3+python几种定位元素的方法

    学习小结: 这里使用ChromeV73+web driver 2.46 #几种定位方式: #Autotest.py from selenium import webdriver from seleni ...

  10. 【scrapy】笔记一:安装,以及遇到的坑

    一.前提 环境:python 3.7 操作系统: windows ;mac 二.安装步骤 mac : pip3 install scarpy //因为MAC自带python2.7所有我们用pip3指定 ...