上一篇讲了Java中如何操作XML,现在介绍一个更厉害的方法,Dom4j ,百度查一下就知道,这个更强,更快,更简单。

自己下载jar包导入工具,下面来讲一个例子,我事先准备了一个XML文件,如下:

<?xml version="1.0" encoding="utf-8" ?>
<Loves>
<love>
<name>许嵩</name>
<age>32</age>
</love>
<love>
<name>林俊杰</name>
<age>33</age>
</love>
</Loves>

一、使用Dom4j读取XML文件的内容

package com.StadyJava.Dom4jDemo;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; import java.io.File;
import java.util.List; public class test { public static void main(String[] args) throws Exception{
Dom4j(); }
private static File file=new File("F:\\Study Java\\ch1helloworld\\src\\main\\java\\com\\StadyJava\\Dom4jDemo\\Love.xml"); public static void Dom4j() throws Exception{
//获取文档对象
SAXReader reader=new SAXReader();
Document doc=reader.read(file);
//获取根元素
Element root=doc.getRootElement();
//获取所有的子元素Love
List<Element> lovelist = root.elements("love");
//输入name元素的内容
for (Element element : lovelist) {
System.out.println(element.elementTextTrim("name"));
System.out.println("---------------");
} } }

二、使用Dom4j对XML新增一些内容

package com.StadyJava.Dom4jDemo;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter; import java.io.File;
import java.io.FileWriter;
import java.io.OutputStream;
import java.util.List; public class test { public static void main(String[] args) throws Exception{
Dom4jAdd(); }
private static File file=new File("F:\\Study Java\\ch1helloworld\\src\\main\\java\\com\\StadyJava\\Dom4jDemo\\Love.xml"); public static void Dom4jAdd() throws Exception{
//获取文档对象
SAXReader reader=new SAXReader();
Document doc=reader.read(file);
//获取根元素
Element root=doc.getRootElement();
//创建一个love元素,作为根元素的子元素
Element lovenew=root.addElement("love");
//Element lovenew=root.addElement("love").addAttribute("id","1"); 如果你的love元素有属性,可以这样写
//为love新元素添加name、age元素并且赋值
lovenew.addElement("name").setText("蜀云泉");
lovenew.addElement("age").setText("23"); //在内存里面的XML已经完成,现在同步内存到磁盘,同步到磁盘有两种方式:第一种都在一行,可读性差,但是没有了空格和换行,性能占优。 第二种,拥有漂亮的格式,有换行和空格,可读性强。二选一
//同步第一种,都在一行,优点:性能 缺点:可读性差
FileWriter out =new FileWriter(file);
doc.write(out);
out.close();//关闭流,如果不关闭,那么你的XML文件会变空 //同步第二种,有格式,优点:可读性强 缺点:性能差一点
OutputFormat format=OutputFormat.createPrettyPrint();
XMLWriter writer=new XMLWriter(new FileWriter(file),format);
writer.write(doc);
writer.close();//任何时候都不要忘记关闭流 } }

Java中的Dom4j的更多相关文章

  1. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  2. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  3. Java中使用dom4j处理xml类型的文本

    在Java的实际开发中经常会碰到xml文件的解析,需要获取固定节点的内容,在这里简单记录一下,方便下次使用时查阅: 1.VSCode中安装插件XML Format,Shift + Alt + F撸直x ...

  4. java中利用dom4j解析XML文件

    官网下载Dom4j地址:https://dom4j.github.io/ 注意:使用Dom4j开发,需下载dom4j相应的jar文件 题目:后台利用dom4j解析student.xml文件,并返回Li ...

  5. 在java中使用dom4j解析xml

    创建xml文档并输出到文件 import java.io.File; import java.io.FileOutputStream; import org.dom4j.Document; impor ...

  6. 在java中使用dom4j包对String格式的xm数据l解析

    在网上找了好久,都没搞出来,借鉴别人的代码,依葫芦画瓢,写了个自己用的解析类.注意节点属性和子节点的区别就好了,这个包的方法还挺好用的 package com.allinpay.utils; impo ...

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

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

  8. myeclipse的web project中使用dom4j报错java.lang.ClassNotFoundException: org.dom4j.Document

    在学习微信公众平台开发的过程中,参考了微信公众平台java开发详解(工程代码+解析)中的xml解析方法,是使用dom4j来解析的. 对于java中解析xml的方法,又参考了java解析xml的几种方式 ...

  9. java中使用axis发布和调用webService及dom4j解析xml字符串

    工作中需要调用webService服务,这里记录一下如何在java中发布和调用webService. 需要的jar包: webService服务端: import javax.jws.WebMetho ...

随机推荐

  1. POJ1860-Currency Exchange-判正环

    两种货币的交换可以当成两条边,建图后跑Bellman_ford算法就好了. Bellman_ford算法可以用来处理负边权,所以可以判断是否存在负环.反过来就可以判断是否存在正环. /*------- ...

  2. codeforces1101D GCD Counting 【树形DP】

    题目分析: 蛮简单的一道题,对于每个数拆质因子,对于每个质因子找出最长链,在每个地方枚举一下拼接 代码: #include<bits/stdc++.h> using namespace s ...

  3. 洛谷P1063能量项链题解

    $题目$ 不得不说,最近我特别爱刷这种区间DP题,因为这个跟其他的DP有些不一样的地方,主要是有一定的套路,就是通过小区间的状态更新大区间,从而得到原题给定区间的最优解. $但是$ 这个题应该跟$石子 ...

  4. 使用npm安装appium时的坑

    使用命令安装appium 命令安装 npm install -g appium(如果安装失败那么就指定国内的淘宝源安装吧,官方源我应该试了n次费了很大劲才安装成功) 指定淘宝源安装:设置 npm 淘宝 ...

  5. Appium环境的安装以及一路上的坑

    Appium环境的安装以及一路上的坑 第一步环境的安装 l  javaJDK的安装以及环境变量的配置这个我就不说了网上的教程全都是,搜一个安装一下吧 l  AndroidSDK的安装也是如此我是直接安 ...

  6. 【XSY1642】Another Boring Problem 树上莫队

    题目大意 给你一棵\(n\)个点的树,每个点有一个颜色\(c_i\),每次给你\(x,y,k\),求从\(x\)到\(y\)的路径上出现次数第\(k\)多的颜色的出现次数 \(n,q\leq 1000 ...

  7. zabbix 自定义 nginx 监控模板

    打开zabbix首页→配置→模板→创建模板模板名称:Template App NGINXagent 需添加自定义监控项:UserParameter=nginx.status[*],/bin/bash ...

  8. WC2019 题目集

    最近写的一些 WC2019 上讲的一些题.还是怕忘了,写点东西记录一下. LOJ2983 「WC2019」数树 题意 本题包含三个问题: 问题 0:已知两棵 \(n\) 个节点的树的形态(两棵树的节点 ...

  9. zabbix3.4.6之源码安装

    LAMP部署环境搭建: Linux+apache(httpd)+mysql(mariadb)+php: 版本要求:apache-1.3.12,mysql-5.0.3,php-5.4.0<http ...

  10. AtCoder ExaWizards2019题解

    AtCoder ExaWizards2019题解 AtCoder (因为代码直接用模板写的,可能有点冗长) A.Regular Triangle 给你三根棍子的长度,问你能否用他们组成等边三角形. 什 ...