zoukankan      html  css  js  c++  java
  • Java中的Dom4j

      上一篇讲了Java中如何操作XML,现在介绍一个更厉害的方法,Dom4j ,百度查一下就知道,这个更强,更快,更简单。

    自己下载jar包导入工具,下面来讲一个例子,我事先准备了一个XML文件,如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <Loves>
        <love>
            <name>许嵩</name>
            <age>32</age>
        </love>
        <love>
            <name>林俊杰</name>
            <age>33</age>
        </love>
    </Loves>

    一、使用Dom4j读取XML文件的内容

    package com.StadyJava.Dom4jDemo;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    import java.io.File;
    import java.util.List;
    
    public class test {
    
        public static void main(String[] args) throws  Exception{
            Dom4j();
    
        }
        private static File file=new File("F:\Study Java\ch1helloworld\src\main\java\com\StadyJava\Dom4jDemo\Love.xml");
    
        public static void Dom4j() throws  Exception{
            //获取文档对象
            SAXReader reader=new SAXReader();
            Document doc=reader.read(file);
            //获取根元素
            Element root=doc.getRootElement();
            //获取所有的子元素Love
            List<Element> lovelist = root.elements("love");
            //输入name元素的内容
            for (Element element : lovelist) {
                System.out.println(element.elementTextTrim("name"));
                System.out.println("---------------");
            }
    
        }
    
    
    }

    二、使用Dom4j对XML新增一些内容

    package com.StadyJava.Dom4jDemo;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    
    import java.io.File;
    import java.io.FileWriter;
    import java.io.OutputStream;
    import java.util.List;
    
    public class test {
    
        public static void main(String[] args) throws  Exception{
            Dom4jAdd();
    
        }
        private static File file=new File("F:\Study Java\ch1helloworld\src\main\java\com\StadyJava\Dom4jDemo\Love.xml");
    
        public static void Dom4jAdd() throws  Exception{
            //获取文档对象
            SAXReader reader=new SAXReader();
            Document doc=reader.read(file);
            //获取根元素
            Element root=doc.getRootElement();
            //创建一个love元素,作为根元素的子元素
            Element lovenew=root.addElement("love");
            //Element lovenew=root.addElement("love").addAttribute("id","1"); 如果你的love元素有属性,可以这样写
            //为love新元素添加name、age元素并且赋值
            lovenew.addElement("name").setText("蜀云泉");
            lovenew.addElement("age").setText("23");
    
            //在内存里面的XML已经完成,现在同步内存到磁盘,同步到磁盘有两种方式:第一种都在一行,可读性差,但是没有了空格和换行,性能占优。 第二种,拥有漂亮的格式,有换行和空格,可读性强。二选一
            //同步第一种,都在一行,优点:性能  缺点:可读性差
            FileWriter out =new FileWriter(file);
            doc.write(out);
            out.close();//关闭流,如果不关闭,那么你的XML文件会变空
    
            //同步第二种,有格式,优点:可读性强   缺点:性能差一点
            OutputFormat format=OutputFormat.createPrettyPrint();
            XMLWriter writer=new XMLWriter(new FileWriter(file),format);
            writer.write(doc);
            writer.close();//任何时候都不要忘记关闭流
    
        }
    
    
    }
  • 相关阅读:
    微信小程序HTTPS
    微信商城-1简介
    va_list
    Event log c++ sample.
    EVENT LOGGING
    Analyze Program Runtime Stack
    unknow table alarmtemp error when drop database (mysql)
    This application has request the Runtime to terminate it in an unusual way.
    How to check if Visual Studio 2005 SP1 is installed
    SetUnhandledExceptionFilter
  • 原文地址:https://www.cnblogs.com/yunquan/p/10113409.html
Copyright © 2011-2022 走看看