java-web-dom4j解析XML-递归方式
<?xml version="1.0" encoding="UTF-8"?>
<书架>
<书 出版日期="2013-10-25" 出版社="人民出版社" 编号="b1">
<作者>曾哥</作者>
<作者>东方不败</作者>
<售价>66.8</售价>
<简介>欲练此功,不必自宫!</简介>
<书名>
<bookmark>辟邪剑谱</bookmark>
</书名>
<书名>葵花宝典</书名>
</书>
<书 出版社="清华出版社" 编号="b2">
<书名 ID="b1" value="hahaha">九阴真经</书名>
<作者>独孤求败</作者>
<售价>88.9</售价>
<简介>武功狠!!!</简介>
</书>
</书架>
用递归将想找的标签名中的文本值找到:
package myTestDom4j;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class MyDom4jZSGC {
public static void main(String[] args) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read("src/main/resources/book.xml");
Element rootElement = document.getRootElement(); //拿到跟节点<书架>
List<Element> elementList = rootElement.elements(); //<书架>的两个儿子
testSelect(elementList);
testAdd();
}
private static void testSelect(List<Element> elementList4) throws DocumentException {
int nums = elementList4.size();
for (int i = 0; i < nums; i++) {
Element elementEvery = elementList4.get(i); //<书架>的第一个儿子
List<Element> elementEverySun = elementEvery.elements();//<书架>的两个儿子的后背所有节点
if (elementEverySun.size() == 0) {
if (elementEvery.getName().equals("bookmark")) {
System.out.println(elementEvery.getText());
}
} else {
testSelect(elementEverySun);
}
}
}
private static void testAdd() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document document = reader.read("src/main/resources/book.xml");
document.elementByID("zuozhe").addAttribute("name", "yinlixin");
document.elementByID("zuozhe").setText("尹立新武功天下第一——————");
//回写回XML
XMLWriter writer = new XMLWriter(new FileWriter("src/main/resources/book.xml"));
writer.write( document );
writer.close();
}
}
java-web-dom4j解析XML-递归方式的更多相关文章
- java使用dom4j解析xml文件
关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...
- 【收藏用】--切勿转载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
与利用DOM.SAX.JAXP机制来解析xml相比DOM4J表现更优秀,具有性能优异.功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml.dom4j是一 ...
- java三方---->dom4j解析xml数据
Dom4j是一个易用的.开源的库,用于XML,XPath和XSLT.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP.今天我们就开始Dom4j的学习. Dom4j的使用 ...
- java 之 dom4j解析xml
*dom4j,是一个组织,针对xml解析,提供解析器dom4j *dom4j不是javase的一部分,想要使用需要导入dom4j提供的jar包 *第一步:创建lib文件夹,将压缩文件放到此处 *第二步 ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- java dom4j解析xml实例(2)
java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...
- java dom4j解析xml实例
java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...
- Java进阶(二十七)使用Dom4j解析XML文件
使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...
随机推荐
- ubuntu 14.04解决gedit中文乱码的问题
终端输入 gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8','GB18030','GB2 ...
- “DataTable”是“System.Data.DataTable”和“Microsoft.Office.Interop.Excel.DataTable”之间的不明确的引用
“DataTable”是“System.Data.DataTable”和“Microsoft.Office.Interop.Excel.DataTable”之间的不明确的引用 造成这个错误的原因是,在 ...
- C 语言 输入字符串 并计算输入的字符的长度
int main(void) { char a[50];int i=0;char *j;gets(a);//输入字符串j=a;while(*j!='\0'){j++;//指针指向下一个数组字符i++; ...
- 关于Linux平台malloc的写时拷贝(延迟分配)【转】
Linux内核定义了“零页面”(内容全为0的一个物理页,且物理地址固定),应用层的内存分配请求,如栈扩展.堆分配.静态分配等,分配线性地址后,就将页表项条目指向“零页面”(指定初始值的情况除外),这样 ...
- java实现双端链表
PS:双端链表(持有对最后一个节点的引用,允许表尾操作与表头操作等效的功能) public class DoubleLinkedList { //节点类 static class Node { pub ...
- MVC4.0系统开发新手历程(四)数据列表查询
任何系统都不可避免的就是数据的查询展示,我觉得这里最值得一说的就是分部视图以及数据分页了 首先添加控制器 在控制其上面的名字为Index的Action上面右击,添加视图即可添加对应的视图,分部视图呈现 ...
- 【开源】Hawk-数据抓取工具:简明教程
1.软件介绍 HAWK是一种数据采集和清洗工具,依据GPL协议开源,能够灵活,有效地采集来自网页,数据库,文件, 并通过可视化地拖拽, 快速地进行生成,过滤,转换等操作.其功能最适合的领域,是爬虫和数 ...
- Matlab画图常用的符号和颜色
线型 说明 标记符 说明 颜色 说明 - 实线(默认) + 加号符 r 红色 -- 双划线 o 空心圆 g 绿色 : 虚线 * 星号 b 蓝色 :. 点划线 . 实心圆 c 青绿色 x 叉号符 m 洋 ...
- NetAnalyzer笔记 之 一. 开篇语
[创建时间:2015-08-26 22:00:12] NetAnalyzer下载地址 第一次写技术相关的博客,不足之处还请担待并告知. 在开始之前,先简单介绍一下NetAnalyzer, NetAna ...
- sublime怎么实现函数之间的跳转
1.安装ctags应用程序. 到CTags的官方站点下载最新版本号,将解压后的ctags.exe放到系统环境变量的搜索路径中.通常是C:\windows\system32. 假设你想放到其它目录中,记 ...