使用dom4j类操作xml文档
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文档的更多相关文章
- C#XmlHelper帮助类操作Xml文档的通用方法汇总
前言 该篇文章主要总结的是自己平时工作中使用频率比较高的Xml文档操作的一些常用方法和收集网上写的比较好的一些通用Xml文档操作的方法(主要包括Xml序列化和反序列化,Xml文件读取,Xml文档节点内 ...
- 操作xml文档的常用方式
1.操作XML文档的两种常用方式: 1)使用XmlReader类和XmlWriter类操作 XmlReader是基于数据流的,占用极少的内存,是只读方式的,所以速度极快.只能采用遍历的模式查找数据节点 ...
- 文档对象模型操作xml文档
简介 :文档对象模型(DOM)是一种用于处理xml文档的API函数集. 2.1文档对象模型概述 按照W3C的定义,DOM是“一种允许程序或脚本动态地访问更新文档内容,结构和样式的.独立于平台和语言的规 ...
- 编写Java程序,现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示
查看本章节 查看作业目录 需求说明: 现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示 实现思路: 创建解析 XML 文档类 ParseXML 和窗体类 ...
- 编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据
查看本章节 查看作业目录 需求说明: 使用 dom4j 创建一个 XML 文档,文档名为"city.xml".该文档的格式和数据如图所示 实现思路: 创建Java项目,添加dom4 ...
- XPath操作XML文档
NET框架下的Sytem.Xml.XPath命名空间提供了一系列的类,允许应用XPath数据模式查询和展示XML文档数据. 3.1XPath介绍 主要的目的是在xml1.0和1.1文档节点树种定位节点 ...
- 操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP)
原文:操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP) 不管是用 PHP 还是 C#, 在操作 XML 的时候我们除了一个节点一个节点去取值之外, 还有一个非常方便的表达式, 就是 ...
- 【JAVA与DOM4J实现对XML文档的CRUD操作】
一.简介 1.网上下载DOM4J 1.6.1压缩包,解压开之后,发现几个目录和一个jar文件,jar文件是必须的文件其它目录: docs目录:帮助文档的目录,单击index.html: Quick s ...
- C#XmlHelper操作Xml文档的帮助类
using System.Xml; using System.Data; namespace DotNet.Utilities { /// <summary> /// Xml的操作公共类 ...
随机推荐
- JavaSE-知识点总结
Java名词 变量.运算符.类.接口.枚举.参数.注解.异常.包装类.多线程.集合.IO流.网络编程.反射.Lambda.API 源文件:.java文件,存储Java源代码的文件 字节码文件:.cla ...
- 我的chrome 智能扩展插件copier开源了!!!
整理了下之前写的chrome-extensions-copier,分享给大家. 这个插件呢,主要用来在chrome浏览器上复制某些网站的某些特定内容,主要是用来复制代码,提高效率!(没办法,某些网站不 ...
- SpringBoot微服务电商项目开发实战 --- Redis缓存雪崩、缓存穿透、缓存击穿防范
最近已经推出了好几篇SpringBoot+Dubbo+Redis+Kafka实现电商的文章,今天再次回到分布式微服务项目中来,在开始写今天的系列五文章之前,我先回顾下前面的内容. 系列(一):主要说了 ...
- sleep方法要求处理中断异常:InterruptedException
package seday08.thread;/*** @author xingsir * 当一个线程调用sleep方法处于阻塞状态的过程中,这个线程的中断方法interrupt被调用时,则sleep ...
- 63-容器在 Weave 中如何通信和隔离?
上一节我们分析了 Weave 的网络结构,今天讨论 Weave 的连通和隔离特性. 首先在host2 执行如下命令: weave launch 192.168.0.44 这里必须指定 host1 的 ...
- 主说明:自动Undo管理的故障排除指南(Doc ID 1579081.1)
Master Note: Troubleshooting guide for Automatic Undo Management (Doc ID 1579081.1) APPLIES TO: Orac ...
- Java连载59-局部内部类、匿名内部类
一.局部内部类 1.局部内部类等同于局部变量 2.局部内部类在访问局部变量的时候,局部变量必须使用final修饰. 3.举个例子: package com.bjpowernode.java_learn ...
- 原创 Hive count 多个度量指标,带有 distinct
Hive count 多个度量指标,带有 distinct ,注意点!!! 比如 select organid, ppi, count(id1) as num1, count(distinct ...
- (2018版)webstorm的安装和破解
前言 相信使用HBuildX的各位都用过,所以这个webstorm就是用来代替的. 因为使用方式跟idea等软件差不多,如果习惯了idea的操作方式的可以试一试 安装webstorm 这是2018版的 ...
- java8-Optional的引入
背景 NPE问题,100%的Java程序员都碰到,并且曾经是心中的痛. 1965年英国TonyHoare引入了Null引用,后续的设计语言包括Java都保持了这种设计. 一个例子 业务模型 Perso ...