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();
    }


    }
    }

  • 相关阅读:
    构建之法阅读笔记02
    4.7-4.13 第八周总结
    构建之法阅读笔记01
    顶会热词统计
    结对作业-四则运算升级版
    3.31-4.5 第七周总结
    大道至简阅读笔记03
    3.23-3.30 第六周总结
    第7周总结
    人月神话阅读笔记之三
  • 原文地址:https://www.cnblogs.com/lmq3321/p/6674337.html
Copyright © 2011-2022 走看看