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>

最新文章

  1. Linux设置服务自启动(转载)
  2. WordPress 主题开发 - (六) 创建主题函数 待翻译
  3. 升级到win8.1后除IE11外,其它浏览器无法打开网页解决办法
  4. Ajax HTML, JS
  5. java 写文本文件
  6. qsort的另类玩法,无聊写着耍耍
  7. MemCache分布式内存对象缓存系统
  8. 下载一个应用程序,华硕手机秒变3D扫描仪
  9. css控制UL LI 的样式详解(推荐)
  10. Findout之为什么公司内部不能使用SSH协议连接外网服务器
  11. [UE4]暂停游戏、退出游戏、游戏输入模式
  12. sql 用Group by分组后,取每组的前几条记录
  13. IdeaVim-常用操作(转载)
  14. 每日英语:The Invasion of the Online Tutors
  15. 对于Serializable id类型的数据的测试
  16. Spring Boot学习笔记(五)整合mybatis
  17. ssm小小整合
  18. EJB结合struts2创建项目、发布jboss服务器和访问、父类(BaseDaoImpl)的封装
  19. [笔记]一道C语言面试题:大整数乘法
  20. Codeforces 1114D Flood Fill (区间DP or 最长公共子序列)

热门文章

  1. learn go recursive
  2. 启动和连接MySQL服务
  3. autoconf / automake工具使用介绍
  4. java sundry tips
  5. BZOJ4566 Haoi2016 找相同字符【广义后缀自动机】
  6. BZOJ3566 SHOI2014 概率充电器 【概率DP】
  7. BZOJ1407 NOI2002 Savage 【Exgcd】
  8. BZOJ5298 CQOI2018 交错序列 【DP+矩阵快速幂优化】*
  9. 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录
  10. Hadoop常见错误问题及解决方法总结二