dom4j解析xml 文件 并对其操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38230811/article/details/84565580

代码实例

package cn.test.dom4jtest;

import java.io.FileOutputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class TestDom4j {

    public static void main(String[] args) throws Exception {
        selectName();
        selectSingleName(2);
        addAgeBefore();
    }
    
    public static void  addAgeBefore() throws Exception{
        /*
         *  1创建解析器
         *  2得到document
         *  3得到根节点
         *  
         *  4得到第1个 p1
         *  5获得p1下面所有元素
         *            elements()方法返回list集合
         *            使用list 里面的方法 在特定位置添加元素
         *            第一个参数是位置下标 从0开始
         *  6回写xml          
         */
        SAXReader saxReader = new SAXReader();    
        Document document = saxReader.read("src/person.xml");
        Element root =document.getRootElement();
        Element  p1 = root.element("p1");
        List<Element> list = p1.elements();
        
        //添加元素
        Element school=DocumentHelper.createElement("school");
        school.setText("one");
        list.add(1,school);
        
        //回写xml
        OutputFormat format =OutputFormat.createPrettyPrint();
        XMLWriter xmlWriter=new XMLWriter(new FileOutputStream("src/person.xml"),format);
        xmlWriter.write(document);
        xmlWriter.close();
    }
    
    //查询 xml中第n个 name元素的值
    public static void  selectSingleName(int index) throws Exception{
        /*
         *  1创建解析器
         *  2得到document
         *  3得到根节点
         *  
         *  4得到第n个 p1
         *  5得到p1 name下面的值
          */
        SAXReader saxReader = new SAXReader();    
        Document document = saxReader.read("src/person.xml");
        Element root =document.getRootElement();
        List<Element > list = root.elements("p1");
        if(list.size()>=index){
        Element element=list.get(index-1);
        Element name=element.element("name");
        System.out.println(name.getText());
        }else{
            System.out.println("no search");
        }
        }
    
    
    //查询 xml中所用name元素的值
    public static void  selectName() throws Exception{
        /*
         *  1创建解析器
         *  2得到document
         *  3得到根节点
         *  
         *  4得到p1
         *  5得到p1 name下面的值
          */
        SAXReader saxReader = new SAXReader();    
        Document document = saxReader.read("src/person.xml");
        Element root =document.getRootElement();
        List<Element > list = root.elements("p1");
        //遍历list
        for (Element element : list) {
            Element name=element.element("name");
            System.out.println(name.getText());
            
        }
        
    }

}

猜你喜欢

转载自blog.csdn.net/qq_38230811/article/details/84565580