Rhythmk 一步一步学 JAVA (16) dom4j 操作XML
1、项目文件结构图:

2、文件代码:
doc.xml
<?xml version="1.0" encoding="UTF-8"?>
<Shop>
<Book id="1">
<Name>语文</Name>
<Type>文科</Type>
</Book>
<Book id="2">
<Name>
<!-- aaaaaasfsddsfa -->
数学</Name>
<Type>理科</Type>
</Book>
<Book id="3">
<Name>英语</Name>
<Type>文科</Type>
</Book>
</Shop>
Dom4jMain.java
package Dom4j.Rrhythmk.com; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream.GetField;
import java.io.Writer;
import java.util.Iterator;
import java.util.List; import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.DocumentHelper; public class Dom4jMain { public static void main(String[] args) { String path = System.getProperty("user.dir") + "\\" + "\\xml\\Doc.xml";
System.out.println(path);
ReadXML(path);
StringToXML();
} /*
* 读取XML
*/
public static void ReadXML(String path) { try { InputStream inputStream = new FileInputStream(new File(path)); SAXReader saxRD = new SAXReader();
Document doc = saxRD.read(inputStream);
Element element = doc.getRootElement(); System.out.println("getNamespace:" + element.getNamespace());
System.out.println("节点名称-getName:" + element.getName());
System.out.println("getText:" + element.getText()); Iterator<Element> bookList = element.elements("Book").iterator(); while (bookList.hasNext()) { Element nextElement = bookList.next(); System.out.println(nextElement.attribute("id").getText()); System.out
.println(nextElement.element("Name").getStringValue()); System.out
.println(nextElement.element("Type").getStringValue()); } } catch (Exception e) {
e.printStackTrace();
} } /*
* 字符串转换XML
* 修改XML节点
* 保存XML
* */ public static void StringToXML() {
try {
// 1、字符串转换XML
System.out.println("StringToXML-字符串转换成XML对象");
String xmlStr = "<Shop><Book id=\"1\"><Name>语文</Name><Type>文科</Type></Book><Book id=\"2\"><Name>数学</Name><Type>理科</Type></Book></Shop>";
Document doc = DocumentHelper.parseText(xmlStr);
Element rootElement = doc.getRootElement();
List<Element> list = rootElement.elements("Book"); for (Element e : list) {
System.out.println("id-" + e.attributeValue("id").toString()); System.out.println("Name-"
+ e.element("Name").getTextTrim());
System.out.println("Type-"
+ e.element("Type").getTextTrim()); System.out.println("path-"
+ e.element("Type").getPath()); }
// 2、修改XML节点
System.out.println("修改XML节点");
for (Element e : list) { e.element("Type").setText(e.element("Type").getTextTrim()+"1");
} System.out.println("输出XML字符串"); System.out.println( doc.asXML());
// 3、保存XML
String path = System.getProperty("user.dir") + "\\" + "\\xml\\Doc"+java.util.UUID.randomUUID().toString() +".xml";
Writer write=new FileWriter(path);
write.write(doc.asXML());
write.flush();
write.close();
System.out.println("生成XML文件路径:"+path); } catch (Exception e) {
e.printStackTrace();
} } }
输出:
F:\Java2014Code\XMLDocument\\xml\Doc.xml
getNamespace:org.dom4j.Namespace@babe [Namespace: prefix mapped to URI ""]
节点名称-getName:Shop
getText:
1
语文
文科
2
数学
理科
3
英语
文科
StringToXML-字符串转换成XML对象
id-1
Name-语文
Type-文科
path-/Shop/Book/Type
id-2
Name-数学
Type-理科
path-/Shop/Book/Type
修改XML节点
输出XML字符串
<?xml version="1.0" encoding="UTF-8"?>
<Shop><Book id="1"><Name>语文</Name><Type>文科1</Type></Book><Book id="2"><Name>数学</Name><Type>理科1</Type></Book></Shop>
Rhythmk 一步一步学 JAVA (16) dom4j 操作XML的更多相关文章
- Java使用DOM4J对XML文件进行增删改查操作
Java进行XML文件操作,代码如下: package com.founder.mrp.util; import java.io.File; import java.util.ArrayList; i ...
- Java使用dom4j读取xml时报错:org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence
1.Java使用dom4j读取xml时报错: org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of ...
- 【收藏用】--切勿转载JAVA 使用Dom4j 解析XML
原帖地址 : http://blog.csdn.NET/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1) ...
- JAVA 使用Dom4j 解析XML
[转自] http://blog.csdn.net/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1)下载 ...
- java 之 dom4j解析xml
*dom4j,是一个组织,针对xml解析,提供解析器dom4j *dom4j不是javase的一部分,想要使用需要导入dom4j提供的jar包 *第一步:创建lib文件夹,将压缩文件放到此处 *第二步 ...
- java使用dom4j解析xml文件
关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...
- Java原生API操作XML
使用Java操作XML的开源框架比较多,如著名的Dom4J.JDOM等,但个人认为不管你用那个框架都要对JDK原生的API有所了解才能更得心应手的应用.本篇就来简单了解下原生的XML API. JAV ...
- java使用dom4j对XML进行CURD操作
要使用dom4j必须导入两个jar包: dom4j-1.6.1.jar jaxen-1.1-beta-6.jar 使用dom4j新建一个XML文件: /** * 利用dom4j完成新增一个xml文件 ...
- Java从零开始学四十三(DOM4j解析XML)
一.创建XML // 建立XML public static void gernatorXML() { // 创建Document对象 Document doc = DocumentHelper.cr ...
随机推荐
- swift获取图片路径出错
获取图片路径 用以下方式获取 let path = Bundle.main.path(forResource: "ImageName", ofType: "ImageTy ...
- C的动态链表建立
运用到的函数为: 动态内存分配函数malloc() 比如:char *name=(char *)malloc(20); 相当与c++的new关键字 动态内存释放函数free ...
- 每天一个linux命令:【转载】tail命令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...
- javascript异常处理。 屏蔽异常
http://www.cnblogs.com/aqbyygyyga/archive/2011/10/29/2228824.html
- Sprint第一个冲刺(第一天)
一.Sprint介绍 我们这次的团队项目是做<餐厅到店点餐系统>APP版,暂时不是基于用户需求来做的,但后期会进行用户需求调查,完善我们的软件.现在正在做一些前期准备,在团队合作上还缺乏一 ...
- 40+个对初学者非常有用的PHP技巧
1.不要使用相对路径,要定义一个根路径 这样的代码行很常见: require_once('../../lib/some_class.php'); 这种方法有很多缺点: 它首先搜索php包括路径中的指定 ...
- linux tcpdump命令抓包
tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 截获主机210.27.48.1 和主机210.27.48.2 或210.27 ...
- 如何在 Linux 上使用 x2go 设置远程桌面
https://linux.cn/article-5708-1.html 由于一切都迁移到了云上,作为提高职员生产力的一种方式,虚拟远程桌面在工业中越来越流行.尤其对于那些需要在多个地方和设备之间不停 ...
- html基础1(环境准备、标签)
学习目的 1,能改前端的模板 2,自己装修页面 3.前后端交互多个技术 4.能操作网页元素 5.能和前端开发人员沟通 开发工具: pycharm/webStorm EditPlus(适合初学) sub ...
- sqlplus连接的三种方式
sys用户在cmd下以DBA身份登陆: sqlplus /nolog --运行sqlplus命令,进入sqlplus环境.其中/nolog是不登陆到数据库服务器的意思,如果没有/nolog参 ...