zoukankan      html  css  js  c++  java
  • 用DOM4J解析XML文件案例

    用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:

    1.xml文件

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    
    <class> 
      <student> 
        <name>张三</name>  
        <sid>111111</sid> 
      </student>  
      <student> 
        <name>李四</name>  
        <sid>222222</sid> 
      </student> 
    </class>
    复制代码

    Java代码:

    复制代码
    import java.io.FileOutputStream;
    import java.util.List;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    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 Dom4jCase {
        static Element root;
        public static void main(String[] args) throws Exception {
            add();//在第一个学生里面增加性别标签<sex>男</sex>
            //add2();//在第一个学生的<name>张三</name>标签后增加<home>沭阳</home>
            //delete();//删除上面增加的性别标签<sex>男</sex>
            //modify();//将上面增加的标签<home>沭阳</home>改为<home>江苏</home>
            //select();//查询所有学生姓名
        }
        //在第一个学生里面增加性别标签<sex>男</sex>
        private static void add() throws Exception {
            Document document = getRoot();
            Element s1=root.element("student");
            Element sex1=s1.addElement("sex");
            sex1.setText("男");
            writeBack(document);
        }
        //在第一个学生的<name>张三</name>标签后增加<home>沭阳</home>
        private static void add2() throws Exception {
            Document document = getRoot();
            Element s1=root.element("student");
            List<Element>list=s1.elements();
            Element home=DocumentHelper.createElement("home");
            home.setText("沭阳");
            list.add(1,home );
            writeBack(document);
        }
        //删除上面增加的性别标签<sex>男</sex>
        private static void delete() throws Exception{
            Document document = getRoot();
            Element s1=root.element("student");
            s1.remove(s1.element("sex"));
            writeBack(document);
        }
        //将上面增加的标签<home>沭阳</home>改为<home>江苏</home>
        private static void modify() throws Exception{
            Document document = getRoot();
            Element s1=root.element("student");
            s1.element("home").setText("江苏");
            writeBack(document);
        }
        //查询所有学生姓名
        private static void select() throws Exception{
            Document document = getRoot();
            List<Element> list=root.elements("student");
            for(int i=0;i<list.size();i++)
            {
                System.out.println(list.get(i).elementText("name"));
            }
        }
        //XML回写
        private static void writeBack(Document document)throws Exception {
            OutputFormat format=OutputFormat.createPrettyPrint();
            XMLWriter writer=new XMLWriter(new FileOutputStream("src/1.xml"), format);
            writer.write(document);
            writer.close();
        }
        //初始化
        private static Document getRoot() throws DocumentException {
            SAXReader saxReader=new SAXReader();
            Document document=saxReader.read("src/1.xml");
            root=document.getRootElement();
            return document;
        }
    }
    复制代码
  • 相关阅读:
    deepin v20装机后python配置
    lotus命令详解
    Lotus 客户端命令集合
    在Windows 7或Server 2008 R2上安装更新时提示0x80092004错误的解决方案
    Delphi:如何将列表作为参数传递给SQL查询?
    delphi Ado 执行带有冒号字符语句的处理。
    SQLite与Delphi XE4 (一)
    delphi在TMemo中实现高亮文字
    Delphi中用beep函数拼出节奏和歌曲
    在oracle中插入数据报错:ORA-00984列在此处不允许
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/7595375.html
Copyright © 2011-2022 走看看