SAX解析DOM4J的方法总结
《二 、利用SAX进行DOM解析DOM4J的基本练习》
一、 本次总结用到的xml文档
<?xml version="1.0" encoding="UTF-8"?>
<书架>
<书 出版社="人民出版社">
<书名>三国演义</书名>
<作者>罗贯中</作者>
<售价>100</售价>
<内部价>99</内部价>
</书>
<书>
<书名>西游记</书名>
<作者>吴承恩</作者>
<售价>1</售价>
</书>
</书架>
二 、SAX进行解析的方法:
**在xml文档中得到某个节点的具体内容:例如:得到第二本书的作者
1、得到document对象
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml');
2、得到根元素
Element root = document.getRootElement();
3、找到第二本书
List<Element> secodBook =root.elements("书");//得到根元素的子元素
Element book = secodBook.get(1);//得到第二本书
4、找到第二本书的作者
Element Author = book.element("作者");
5、拿到内容输出内容
system.out.println("请输出得到的内容"+Author.getText());
Assert.assertEquals("吴承恩",Author.getText());//JUnit测试中获取到的值和自己预期的值是否相等
三、SAX解析:遍历xml文档中所有的元素节点
1、得到document对象
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml');
2、得到根元素
Element root = document.getRootElement();
treeWorker(root);//使用treeWorker方法,遍历元素进行,打印他们的名字
3、创建treeWorker()方法
private void treeWorker(root){
system.out.println(root.getName());
List<Element> es = root.elements();//这是个元素的list集合,带有范型
//循环循环输出
for(Element e: es){//增强for循环打印输出
treeWorker(e);//调用treeWorker()方法进行循环遍历
}
}
四、SAX解析:修改某个元素节点的主题内容:例如:修改第二本书的售价
1、得到document对象
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
2、得到根元素
Element root = document.getRootElement();
3、得到第二本书的售价
List<Element> book = root.elements("书");
Element secondBook = book.get(1);//获取第二本书
Element secondBookPrice = secondBook.element("售价");//获取到第二本书的售价
//设置文本内容
secondBookPrice。setText("666666");
//写回到xml文档中
OutputStream out = new FileOutputStream();
OutputFormat format = OutputFormat.createrPrettyPrint();
format.setEncoding("UTF-8");//设定编码格式
XMLWriter writer = new XMLWirter(out,format);
writer.write(docuemnt);//写回到xml文档中
writer.close();//关闭输出流
五、SAX解析:向指定元素节点中增加子元素节点:给第一本书添加批发价
1、得到document对象
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
2、得到根元素
Element root = document.getRootElement();
3、得到第一本书
Element firstBook = root.element("书");
//添加标签及其文本内容
firstBook.addElement("批发价").setText("333");
4、写回到xml文档中
OutputStream out = new FileOutputStream();
OutputFormat format = OutputFormat.createrPrettyPrint();
format.setEncoding("UTF-8");//设定编码格式
XMLWriter writer = new XMLWirter(out,format);
writer.write(docuemnt);//写回到xml文档中
writer.close();//关闭输出流
六、SAX解析:向指定元素节点增加同级元素节点:在第一本书售价的前面添加内部价
1、得到document对象
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
2、得到根元素
Element root = document.getRootElement();
3、得到第一本书
Element firstBook = root.element("书");
List<Element> children = firstBook.elements();//得到第一本书的所有子元素节点:List
//借助DocumentHelper创建内部元素价
Element price= DocumentHelper.createElement("内部价");
price.setText("99");
4、写回到xml文档中
OutputStream out = new FileOutputStream();
OutputFormat format = OutputFormat.createrPrettyPrint();
format.setEncoding("UTF-8");//设定编码格式
XMLWriter writer = new XMLWirter(out,format);
writer.write(docuemnt);//写回到xml文档中
writer.close();//关闭输出流
七、SAX解析:删除指定元素节点:删除第一本书的批发价
1、得到document对象
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
2、得到根元素
Element root = document.getRootElement();
3、得到第一本书
Element firstBook = root.element("书");
Element price= firstBook.element("批发价");//使用上层的父元素进行删除
firstBook.remove(price);
4、写回到xml文档中
OutputStream out = new FileOutputStream();
OutputFormat format = OutputFormat.createrPrettyPrint();
format.setEncoding("UTF-8");//设定编码格式
XMLWriter writer = new XMLWirter(out,format);
writer.write(docuemnt);//写回到xml文档中
writer.close();//关闭输出流
八、、SAX解析:操作xml文件属性:第一本书添加出版社属性
1、得到document对象
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
2、得到根元素
Element root = document.getRootElement();
3、得到第一本书
Element firstBook = root.element("书");
firstBook.setAttribute("出版社","人民出版社");
4、写回到xml文档中
OutputStream out = new FileOutputStream();
OutputFormat format = OutputFormat.createrPrettyPrint();
format.setEncoding("UTF-8");//设定编码格式
XMLWriter writer = new XMLWirter(out,format);
writer.write(docuemnt);//写回到xml文档中
writer.close();//关闭输出流
SAX解析DOM4J的方法总结的更多相关文章
- 转:SAX解析的characters方法被多次调用
原文地址:https://blog.csdn.net/liuxiaoddd/article/details/28885177 android SAX解析的characters方法被多次调用 同理 试用 ...
- 四种解析和创建方式(DOM,SAX,DOM4J,JDOM)
一.先导入jar包 DOM基于树形,SAX基于事件,DOM4J和JDOM基于底层API 二.代码如下 1 package com.sxt.test; import java.io.File; impo ...
- 解析XML的几种方法之SAX解析
假期总结不能停,坚持坚持....接下来总结一下XMl和json的解析和生成.. 解析XML的四种方法,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址: DOM:在现 ...
- DOM综合案例、SAX解析、StAX解析、DOM4J解析
今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...
- dom4j解析器 基于dom4j的xpath技术 简单工厂设计模式 分层结构设计思想 SAX解析器 DOM编程
*1 dom4j解析器 1)CRUD的含义:CreateReadUpdateDelete增删查改 2)XML解析器有二类,分别是DOM和SAX(simple Api for xml). ...
- JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)
1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
- Java xml 操作(Dom4J修改xml + xPath技术 + SAX解析 + XML约束)
1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大 ...
- Java 解析 xml 常见的4中方式:DOM SAX JDOM DOM4J
Java 四种解析 XML 的特点 1.DOM 解析: 形成了树结构,有助于更好的理解.掌握,且代码容易编写. 解析过程中,树结构保存在内存中,方便修改. 2.SAX 解析: 采用事件驱动模式,对内存 ...
随机推荐
- nginx 安装与配置
centos7环境下nginx的安装 版本 0.85 tar zxvf nginx.tar.gz cd nginx ./configure // ./configure --help 查看编译选项 ...
- [vijos P1040] 高精度乘法
如果这次noip没考好,完全是因为从7月29日之后就没有再写过程序了.说起来,真是一个泪流满面的事实… 那这样一个弱智题练手恢复代码能力,竟然还花了我两个晚上(当然不是两整个晚上…) 第一天TLE了, ...
- SharePoint Calculated Columns 分类: Sharepoint 2015-07-09 01:49 8人阅读 评论(0) 收藏
SharePoint Calculated Columns are powerful tools when creating out-of-the-box solutions. With these ...
- inside the C++ Object model总结
一. 关于对象 1.内联函数:能够除去函数调用的开支,每一处内联函数的调用都是代码的复制.这是一种空间换取时间的做法,若函数代码量大或者有循环的情况下,不宜内联(这件事有些编译器会自动帮你做).在类中 ...
- java基础之 多态
在面向对象编程(Object-Oriented Programming, OOP)中,多态机制无疑是其最具特色的功能,甚至可以说,不运用多态的编程不能称之为OOP.这也是为什么有人说,使用面向对象语言 ...
- 利用netperf、iperf、mtr测试网络
1.netperf安装和使用 netperf安装 # tar -xzvf netperf-.tar.gz # cd netperf- # ./configure # make # make insta ...
- 1、C#基础:变量、运算符、分支、循环、枚举、数组、方法 <转>
转自:海盗船长 链接:http://www.cnblogs.com/baidawei/p/4701504.html#3241882 C#..Net以及IDE简介 一.什么是.Net? .Net指 .N ...
- [转载]va_start和va_end使用详解
va_start和va_end使用详解 原文地址:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html 本文主要介绍va_s ...
- jquery 如何去除select 控件重复的option
这个去重不是很好用,如果id值不同,text是一样的,也会被去掉 <input type="button" class="btn" id="bt ...
- 2015-2016最火的Android开源项目--github开源项目集锦(不看你就out了)
标签: Android开发开源项目最火Android项目github 2015-2016最火的Android开源项目 本文整理与集结了近期github上使用最广泛最火热与最流行的开源项目,想要充电与提 ...