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 ...
随机推荐
- crm--01
需求: 将课程名称与班级综合起来 class ClassListConfig(ModelSatrk): # 自定义显示方式 def display_class(self,obj=None,is_hea ...
- SQL查询执行步骤
1.总结 执行顺序 3.select ...聚合函数 from 表名 1.where ... 2.group by ... 4.having ... 5.order by ... 6.limit .. ...
- FTRL笔记
这篇笔记主要参考冯杨的五篇博客:在线最优化求解(Online Optimization).因为对于在线学习方法,稀疏性问题需要特别关注:每次在线学习一个新 instance 的时候,优化方向并不一定是 ...
- 白话machine learning之Loss Function
转载自:http://eletva.com/tower/?p=186 有关Loss Function(LF),只想说,终于写了 一.Loss Function 什么是Loss Function?wik ...
- BZOJ5142: [Usaco2017 Dec]Haybale Feast(双指针&set)(可线段树优化)
5142: [Usaco2017 Dec]Haybale Feast Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 182 Solved: 131[ ...
- BZOJ5280: [Usaco2018 Open]Milking Order(二分+拓扑)
5280: [Usaco2018 Open]Milking Order Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 123 Solved: 62[ ...
- HDU - 5942 :Just a Math Problem (莫比乌斯)
题意:略. 思路:问题转化为1到N,他们的满足mu[d]!=0的因子d个数. 即1到N的因子的莫比乌斯系数平方和. (经验:累加符号是累加的个数,我们把常数提到前面,然后用杜教筛累加个数即可. ht ...
- 阿里云ECS 环境是CentOS 7.3安装mongodb3
CentOS安装mongodb https://www.cnblogs.com/zddzz/p/10069912.html CentOS安装mongodb 我的是阿里云ECS 环境是CentOS 7. ...
- P2P UPD打洞原理
转自:http://blog.pfan.cn/fengfei/18828.html 首先先介绍一些基本概念: NAT(Network Address Tr ...
- 【深度学习笔记】Anaconda及开发环境搭建
在学习了一段时间台大李宏毅关于deep learning的课程,以及一些其他机器学习的书之后,终于打算开始动手进行一些实践了. 感觉保完研之后散养状态下,学习效率太低了,于是便想白天学习,晚上对白天学 ...