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();//关闭输出流

posted @ 2016-03-17 18:14  小沐沐的木屋  阅读(693)  评论(0编辑  收藏  举报