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的更多相关文章

  1. Java使用DOM4J对XML文件进行增删改查操作

    Java进行XML文件操作,代码如下: package com.founder.mrp.util; import java.io.File; import java.util.ArrayList; i ...

  2. 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 ...

  3. 【收藏用】--切勿转载JAVA 使用Dom4j 解析XML

    原帖地址 : http://blog.csdn.NET/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1) ...

  4. JAVA 使用Dom4j 解析XML

    [转自] http://blog.csdn.net/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1)下载 ...

  5. java 之 dom4j解析xml

    *dom4j,是一个组织,针对xml解析,提供解析器dom4j *dom4j不是javase的一部分,想要使用需要导入dom4j提供的jar包 *第一步:创建lib文件夹,将压缩文件放到此处 *第二步 ...

  6. java使用dom4j解析xml文件

    关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...

  7. Java原生API操作XML

    使用Java操作XML的开源框架比较多,如著名的Dom4J.JDOM等,但个人认为不管你用那个框架都要对JDK原生的API有所了解才能更得心应手的应用.本篇就来简单了解下原生的XML API. JAV ...

  8. java使用dom4j对XML进行CURD操作

    要使用dom4j必须导入两个jar包: dom4j-1.6.1.jar jaxen-1.1-beta-6.jar 使用dom4j新建一个XML文件: /** * 利用dom4j完成新增一个xml文件 ...

  9. Java从零开始学四十三(DOM4j解析XML)

    一.创建XML // 建立XML public static void gernatorXML() { // 创建Document对象 Document doc = DocumentHelper.cr ...

随机推荐

  1. Why I am not afraid of AI (TBC)

    Freud! Yes, according to Freud's theory, most human activities are driven by libido (or aim-inhibite ...

  2. int('x', base)中的base参数

    >>> int('12', 16) 16表示'12'就是16进制数,int()要将这个16进制数转化成10进制.

  3. 体验 k8s 的核心功能

    快速体验 k8s 的核心功能:应用部署.访问.Scale Up/Down 以及滚动更新 https://yq.aliyun.com/articles/337209?spm=a2c4e.11153940 ...

  4. hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】

    问题导读 1.说说你对集群配置的认识?2.集群配置的配置项你了解多少?3.下面内容让你对集群的配置有了什么新的认识? 目的 目的1:这个文档描述了如何安装配置hadoop集群,从几个节点到上千节点.为 ...

  5. 超详细的celery异步任务和定时任务的教程

    转载自:https://segmentfault.com/a/1190000007780963

  6. WPF 竖排文字(转)

    ---恢复内容开始--- 想做一个WPF 文字竖排 类似上图.用在TabItem的header上面. <TextBlock FontSize="30" Text=" ...

  7. lua中的数学库

    Lua5.1中数学库的所有函数如下表: 使用数学库,不需要require,直接math.function就可以math.pi 为圆周率常量 = 3.14159265358979323846 abs 取 ...

  8. java指定文件编码格式

    在创建文件并打印字符串时,如果不指定编码,默认是按系统的编码格式来.比如我们的linux环境中编码如下: CMREAD-SV43 /home/wlf> locale LANG=en_US.UTF ...

  9. CSS样式属性分类

    A 文字 1 font-family:字体名称 注意: 当指定多种字体时,用“,”分隔每种字体的名称 当字体名称包含两个以上分开的单词是,用“”把该字体名称括起来. 当样式规则外已经有“”时,用‘’代 ...

  10. dos命令行连接操作ORACLE数据库

    C:\Adminstrator> sqlplus "/as sysdba" 查看是否连接到数据库 SQL> select status from v$instance; ...