《二 、利用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的方法总结的更多相关文章

  1. 转:SAX解析的characters方法被多次调用

    原文地址:https://blog.csdn.net/liuxiaoddd/article/details/28885177 android SAX解析的characters方法被多次调用 同理 试用 ...

  2. 四种解析和创建方式(DOM,SAX,DOM4J,JDOM)

    一.先导入jar包 DOM基于树形,SAX基于事件,DOM4J和JDOM基于底层API 二.代码如下 1 package com.sxt.test; import java.io.File; impo ...

  3. 解析XML的几种方法之SAX解析

    假期总结不能停,坚持坚持....接下来总结一下XMl和json的解析和生成.. 解析XML的四种方法,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址: DOM:在现 ...

  4. DOM综合案例、SAX解析、StAX解析、DOM4J解析

    今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...

  5. dom4j解析器 基于dom4j的xpath技术 简单工厂设计模式 分层结构设计思想 SAX解析器 DOM编程

    *1 dom4j解析器   1)CRUD的含义:CreateReadUpdateDelete增删查改   2)XML解析器有二类,分别是DOM和SAX(simple Api for xml).     ...

  6. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)

    1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...

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

  8. Java xml 操作(Dom4J修改xml   + xPath技术  + SAX解析 + XML约束)

    1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大 ...

  9. Java 解析 xml 常见的4中方式:DOM SAX JDOM DOM4J

    Java 四种解析 XML 的特点 1.DOM 解析: 形成了树结构,有助于更好的理解.掌握,且代码容易编写. 解析过程中,树结构保存在内存中,方便修改. 2.SAX 解析: 采用事件驱动模式,对内存 ...

随机推荐

  1. 在MAC上搭建cordova3.4.0的IOS和android开发环境

    Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...

  2. Builder模式

    原文来源于http://www.iteye.com/topic/71175 对于Builder模式很简单,但是一直想不明白为什么要这么设计,为什么要向builder要Product而不是向知道建造过程 ...

  3. 用PHP抓取淘宝商品的用户晒单评论+图片实例

    为什么想起来做这个功能?是因为前段时间在做一个淘客网站的时候,想到是否能抓取到淘宝商品的买家秀呢?经过一番折腾发现,淘宝商品用户评价信息是通过Ajax来调取的,通过嗅探网址发现,评论数据的请求接口是: ...

  4. TortoiseSVN文件夹及文件图标不显示解决方法

              由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹或文件夹的左下角就是不显示图标,这个问题前一段时间就遇到了(那个时 ...

  5. FB

    转眼间,开始工作到现在好几年,忙着功能,忙着补漏填坑,忙着项目,现在回顾着开始的理想,一时有点恍惚,然后鄙视了下自己居然还在“理想”中…… 那就开始吧,做点什么呢? DX9/DX11的支持是必须的,S ...

  6. Java重载遇到泛型

    今天被问到一个有意思的问题,大家都知道重载的概念吧:一个类中定义同名的方法,参数表不同(参数类型,或者参数个数不通): 但是,如果是下面这个两个方法呢 public static int fn(Lis ...

  7. shopex 小知识

    产品链接: http://www.--/product-172.html 中间的数字代表  sdb_goods 表中 的 goods_id  ... 表示数据库里的产品 id. 分类链接: http: ...

  8. Myeclipse闪退故障

    Myeclipse在编辑代码是出现反复一个异常错误. Index out of bounds,而且窗口关闭后还是出现, 于是在任务管理器里强制关闭MyEclipse. 关闭后启动MyEclipse总是 ...

  9. (转)jQuery插件 -- Form表单插件jquery.form.js

    beforeSubmit: validate function validate(formData, jqForm, options) { //在这里对表单进行验证,如果不符合规则,将返回false来 ...

  10. php大力力 [047节] 寻找程序员的方法和应用

    http://www.proginn.com 程序员客栈 程序员客栈是什么? 程序员客栈,程序员的经纪人.第一阶段,我们通过履历.作品.专业社区影响力.技能树帮助程序员立体地展现成就和价值,不被简历束 ...