dom4j解析

来源:互联网 发布:乙丁网络骗局 编辑:程序博客网 时间:2024/06/02 03:12

dom4j解析

xml

<?xml version="1.0" encoding="utf-8"?><!--引入dtd去约束该xml文件--><班级>   <学生 性别="女" 学号="sp002">     <名字>林青霞</名字>      <介绍>学习刻苦</介绍>      <年龄>23</年龄>   </学生>    <学生>     <名字>宋江</名字>      <年龄/>      <介绍/>   </学生>    <学生>林冲</学生>  <学生>     <名字>宋江</名字>      <年龄/>      <介绍/>   </学生> </班级>

sax解析

要引入dom4j的jar包

package com.dom4j.test;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;import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.util.Iterator;import java.util.List;/** * Created by 宋贤 on 2015/10/14. */public class Dom4jTest {    //演示用dom4j来对xml进行crud操作    public static void main(String[] args) throws Exception{        SAXReader saxReader=new SAXReader();        Document document=saxReader.read(new File("src/com/dom4j/test/myClass2.xml"));//        list(document.getRootElement());//        read(document);//        add(document);//        delete(document);        addByIndex(document);    }    public static void list(Element element){        System.out.println(element.getName()+" "+element.getTextTrim());        Iterator iterator=element.elementIterator();        while (iterator.hasNext()){            Element element1=(Element)iterator.next();            list(element1);        }    }    //读取    public static void read(Document document){        Element root=document.getRootElement();        //取出root下的所有学生元素        Element stu=(Element)root.elements("学生").get(0);//        System.out.println("名字:"+stu.element("名字").getText());        Element stu_name=stu.element("名字");        System.out.println("名字:"+stu_name.getText()+" 性别:"+stu_name.attributeValue("性别"));        //看下面代码能否跨层取        //不能跨层取//        Element stu2=(Element)root.elements("名字").get(0);//        System.out.println(stu2.getText());    }    //读取    public  static  void add(Document document) throws Exception{        Element newStu= DocumentHelper.createElement("学生");        Element newStu_name= DocumentHelper.createElement("名字");        newStu_name.setText("宋江");        Element newStu_age= DocumentHelper.createElement("年龄");        Element newStu_intro= DocumentHelper.createElement("介绍");        //把三个元素添加到newStu下        newStu.add(newStu_name);        newStu.add(newStu_age);        newStu.add(newStu_intro);        //把newStu加到根元素之下        document.getRootElement().add(newStu);        //可能出现中文乱码        OutputFormat format = OutputFormat.createPrettyPrint();        format.setEncoding("utf-8");        XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("src/com/dom4j/test/myClass2.xml")),format);        xmlWriter.write(document);        xmlWriter.close();    }    //删除    public  static void delete(Document document)throws Exception{        Element stu=document.getRootElement().element("学生");//        stu.getParent().remove(stu);        stu.remove(stu.attribute("大哥"));        //可能出现中文乱码        OutputFormat format = OutputFormat.createPrettyPrint();        format.setEncoding("utf-8");        XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("src/com/dom4j/test/myClass2.xml")),format);        xmlWriter.write(document);        xmlWriter.close();    }    public static void addByIndex(Document document)throws Exception{        Element element=DocumentHelper.createElement("学生");        element.setText("林冲");        List list=document.getRootElement().elements("学生");        for (int i=0;i<list.size();i++){            Element name=((Element)list.get(i)).element("名字");            if(name.getText().equals("宋江")){                list.add(i+1,element);                break;            }        }//        list.add(1,element);        OutputFormat format = OutputFormat.createPrettyPrint();        format.setEncoding("utf-8");        XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("src/com/dom4j/test/myClass2.xml")),format);        xmlWriter.write(document);        xmlWriter.close();    }}
0 0
原创粉丝点击