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;
        }
    }
  • 相关阅读:
    CF-819B. Mister B and PR Shifts(模拟,找规律)
    CF-1198E. Rectangle Painting 2(最小点覆盖)
    CF-1214D. Treasure Island(dfs,最小割)
    CF-546E. Soldier and Traveling(网络最大流)
    洛谷 P1351 [NOIP2014 提高组] 联合权值(dp)
    CF-286C. Main Sequence(贪心,模拟)
    java基本框架
    人脸识别算法(—)
    将“引用”作为函数参数有哪些特点
    什么是“引用”?申明和使用“引用”要注意哪些问题?
  • 原文地址:https://www.cnblogs.com/fengmingyue/p/5964420.html
Copyright © 2011-2022 走看看