dom4j操作xml数据

1.Document对象相关
①读取XML文件,获得document对象.
SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));

②解析XML形式的文本,得到document对象.
String text = "<members></members>";
Document document = DocumentHelper.parseText(text);

③主动创建document对象.
Document document = DocumentHelper.createDocument();
// 创建根节点
Element root = document.addElement("members");

2.节点相关
①获取文档的根节点.
Element rootElm = document.getRootElement();

②取得某节点的单个子节点.
Element memberElm=root.element("member");// "member"是节点名

③取得节点的文本.
String text=memberElm.getText();
String text=root.elementText("name");这个是取得根节点下的name字节点的文本

④取得某节点下指定名称的所有节点并进行遍历.
List nodes = rootElm.elements("member");
for (Iterator it = nodes.iterator(); it.hasNext();) {
    Element elm = (Element) it.next();
    // do something
}

⑤对某节点下的所有子节点进行遍历.
for(Iterator it=root.elementIterator();it.hasNext();){
    Element element = (Element) it.next();
    // do something
}

⑥在某节点下添加子节点.
Element ageElm = newMemberElm.addElement("age");

⑦设置节点文字.
ageElm.setText("29");

⑧删除某节点.
parentElm.remove(childElm); // childElm是待删除的节点,parentElm是其父节点

3.属性相关.
①取得节点的指定的属性
Element root = document.getRootElement();
Attribute attribute = root.attribute("size"); // 属性名name

②取得属性的文字
String text = attribute.getText();
String text2 = root.element("name").attributeValue("firstname");
//这个是取得根节点下name子节点的firstname属性的值.

③遍历某节点的所有属性
Element root = document.getRootElement();
for(Iterator it = root.attributeIterator();it.hasNext();){
    Attribute attribute = (Attribute) it.next();
    String text = attribute.getText();
    System.out.println(text);
}

④设置某节点的属性和文字.
newMemberElm.addAttribute("name", "sitinspring");

⑤设置属性的文字
Attribute attribute=root.attribute("name");
attribute.setText("sitinspring");

⑥删除某属性
Attribute attribute=root.attribute("size");// 属性名name
root.remove(attribute);

4.将文档写入XML文件.
①文档中全为英文,不设置编码,直接写入.
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
writer.write(document);
writer.close();

②文档中含有中文,设置编码格式再写入.
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK"); // 指定XML编码
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);
writer.write(document);
writer.close();

实例:

 package com.simple.snow;

 import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter; import com.alibaba.fastjson.JSONObject; public class DealXmlData {
public static void main(String[] ar) {
String fileName = "d:\\text.xml"; Document document = DocumentHelper.createDocument();// 建立document对象,用来操作xml文件 Element booksElement = document.addElement("books");// 建立根节点 booksElement.addComment("This is a test for dom4j ");// 加入一行注释 Element bookElement = booksElement.addElement("book");// 添加一个book节点 bookElement.addAttribute("show", "yes");// 添加属性内容 Element titleElement = bookElement.addElement("title");// 添加文本节点 titleElement.setText("ajax in action");// 添加文本内容 try {
XMLWriter writer = new XMLWriter(new FileWriter(new File(fileName)));
writer.write(document);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

使用dom4j类操作xml文档的更多相关文章

  1. C#XmlHelper帮助类操作Xml文档的通用方法汇总

    前言 该篇文章主要总结的是自己平时工作中使用频率比较高的Xml文档操作的一些常用方法和收集网上写的比较好的一些通用Xml文档操作的方法(主要包括Xml序列化和反序列化,Xml文件读取,Xml文档节点内 ...

  2. 操作xml文档的常用方式

    1.操作XML文档的两种常用方式: 1)使用XmlReader类和XmlWriter类操作 XmlReader是基于数据流的,占用极少的内存,是只读方式的,所以速度极快.只能采用遍历的模式查找数据节点 ...

  3. 文档对象模型操作xml文档

    简介 :文档对象模型(DOM)是一种用于处理xml文档的API函数集. 2.1文档对象模型概述 按照W3C的定义,DOM是“一种允许程序或脚本动态地访问更新文档内容,结构和样式的.独立于平台和语言的规 ...

  4. 编写Java程序,现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示

    查看本章节 查看作业目录 需求说明: 现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示 实现思路: 创建解析 XML 文档类 ParseXML 和窗体类 ...

  5. 编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据

    查看本章节 查看作业目录 需求说明: 使用 dom4j 创建一个 XML 文档,文档名为"city.xml".该文档的格式和数据如图所示 实现思路: 创建Java项目,添加dom4 ...

  6. XPath操作XML文档

    NET框架下的Sytem.Xml.XPath命名空间提供了一系列的类,允许应用XPath数据模式查询和展示XML文档数据. 3.1XPath介绍 主要的目的是在xml1.0和1.1文档节点树种定位节点 ...

  7. 操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP)

    原文:操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP) 不管是用 PHP 还是 C#, 在操作 XML 的时候我们除了一个节点一个节点去取值之外, 还有一个非常方便的表达式, 就是 ...

  8. 【JAVA与DOM4J实现对XML文档的CRUD操作】

    一.简介 1.网上下载DOM4J 1.6.1压缩包,解压开之后,发现几个目录和一个jar文件,jar文件是必须的文件其它目录: docs目录:帮助文档的目录,单击index.html: Quick s ...

  9. C#XmlHelper操作Xml文档的帮助类

    using System.Xml; using System.Data; namespace DotNet.Utilities { /// <summary> /// Xml的操作公共类 ...

随机推荐

  1. JavaSE-知识点总结

    Java名词 变量.运算符.类.接口.枚举.参数.注解.异常.包装类.多线程.集合.IO流.网络编程.反射.Lambda.API 源文件:.java文件,存储Java源代码的文件 字节码文件:.cla ...

  2. 我的chrome 智能扩展插件copier开源了!!!

    整理了下之前写的chrome-extensions-copier,分享给大家. 这个插件呢,主要用来在chrome浏览器上复制某些网站的某些特定内容,主要是用来复制代码,提高效率!(没办法,某些网站不 ...

  3. SpringBoot微服务电商项目开发实战 --- Redis缓存雪崩、缓存穿透、缓存击穿防范

    最近已经推出了好几篇SpringBoot+Dubbo+Redis+Kafka实现电商的文章,今天再次回到分布式微服务项目中来,在开始写今天的系列五文章之前,我先回顾下前面的内容. 系列(一):主要说了 ...

  4. sleep方法要求处理中断异常:InterruptedException

    package seday08.thread;/*** @author xingsir * 当一个线程调用sleep方法处于阻塞状态的过程中,这个线程的中断方法interrupt被调用时,则sleep ...

  5. 63-容器在 Weave 中如何通信和隔离?

    上一节我们分析了 Weave 的网络结构,今天讨论 Weave 的连通和隔离特性. 首先在host2 执行如下命令: weave launch 192.168.0.44 这里必须指定 host1 的 ...

  6. 主说明:自动Undo管理的故障排除指南(Doc ID 1579081.1)

    Master Note: Troubleshooting guide for Automatic Undo Management (Doc ID 1579081.1) APPLIES TO: Orac ...

  7. Java连载59-局部内部类、匿名内部类

    一.局部内部类 1.局部内部类等同于局部变量 2.局部内部类在访问局部变量的时候,局部变量必须使用final修饰. 3.举个例子: package com.bjpowernode.java_learn ...

  8. 原创 Hive count 多个度量指标,带有 distinct

    Hive  count 多个度量指标,带有  distinct ,注意点!!! 比如  select  organid, ppi, count(id1) as num1, count(distinct ...

  9. (2018版)webstorm的安装和破解

    前言 相信使用HBuildX的各位都用过,所以这个webstorm就是用来代替的. 因为使用方式跟idea等软件差不多,如果习惯了idea的操作方式的可以试一试 安装webstorm 这是2018版的 ...

  10. java8-Optional的引入

    背景 NPE问题,100%的Java程序员都碰到,并且曾经是心中的痛. 1965年英国TonyHoare引入了Null引用,后续的设计语言包括Java都保持了这种设计. 一个例子 业务模型 Perso ...