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


    }
    }

  • 相关阅读:
    JMeter参数化及断言的使用
    JMeter基础概念
    postman关联
    postman参数化
    postman发送请求的简单操作
    postman的简单介绍及运用
    javascript小记五则:用JS写一个图片左右自由滚动的“跑马灯”效果
    javascript小记四则:用JS写一个滚动横条文字,可以根据需要进行修改;
    javascript小记三则:ASP.NET启动web调试,窗体自动放大的方法
    JavaScript小记二则:接上一节:用.net写Textbox控件关于数字的判断的另一则方法
  • 原文地址:https://www.cnblogs.com/lmq3321/p/6674337.html
Copyright © 2011-2022 走看看