zoukankan      html  css  js  c++  java
  • dom4j解析XML学习

    原理:把dom与SAX进行了封装

    优点:JDOM的一个智能分支。扩充了其灵活性增加了一些额外的功能。

    package com.dom4j.xml;

    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.util.Iterator;
    import java.util.List;

    import org.dom4j.*;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    import org.junit.Test;

    import com.sun.beans.decoder.DocumentHandler;

    public class dom4j {
    public static void main(String[] args) throws Exception {
    //创建SAXReader对象
    SAXReader reader= new SAXReader();
    //reader方法读取一个文件,转换成doucment对象
    Document document= reader.read("src/NewFile.xml");
    //获取根节点元素对象
    Element nodeRoot= document.getRootElement();
    //遍历所有的元素节点
    listNodes(nodeRoot);
    }
    public static void listNodes(Element node){
    //System.out.println("当前节点名称:"+node.getName());
    //获取当前节点的所有属性节点
    List<Attribute> list= node.attributes();
    //遍历属性节点
    for (Attribute attr : list) {
    System.out.println(attr.getName()+":"+attr.getValue());
    }
    //遍历node节点下面的所有子元素节点
    Iterator<Element> it= node.elementIterator();
    while(it.hasNext()){
    // 获取某个子节点对象
    Element e = it.next();
    if(e.elements().size()==0){
    System.out.println(e.getName()+":"+e.getStringValue());
    }
    //递归遍历元素节点
    listNodes(e);
    }
    }
    @Test
    public void creatXML(){
    //创建saxreader对象
    SAXReader reader = new SAXReader();
    //创建根节点
    Document document = DocumentHelper.createDocument();
    Element root = document.addElement("students");
    Element stu= root.addElement("student");
    stu.addAttribute("id", "001");
    stu.addElement("name","张三");
    stu.addElement("sex","男");
    stu.addElement("age","20");
    //
    // 紧凑的格式
    // OutputFormat format = OutputFormat.createCompactFormat();
    //排版
    OutputFormat format= OutputFormat.createPrettyPrint();
    format.setEncoding("utf-8");
    XMLWriter writer;
    try {
    writer = new XMLWriter(new FileOutputStream("src/stu.xml"),format);
    writer.write(document);
    writer.flush();
    writer.close();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }


    }
    }

  • 相关阅读:
    vue从详情页回到列表页,停留在之前的tab上
    vue-touch监听手指左滑右滑事件
    vue事件代理
    vue通过ref获取组件渲染后的dom(this.$refs.xxxRef.$el)
    vue水印-第二种方法:通过指令
    # 有时候代码超时
    # 今天的leetcode1268又用上了二分搜索。
    # linux命令小常识
    # 大家好
    今天尝试配置maven的时候
  • 原文地址:https://www.cnblogs.com/lmq3321/p/6674337.html
Copyright © 2011-2022 走看看