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


    }
    }

  • 相关阅读:
    在pos:a元素不设定宽度的情况下,他的最大宽度是受父元素的宽度所限制的。
    跳过权限检查,强制修改mysql密码
    IIS7.5 配置ASP+ACCESS使用环境(转)
    windows 2008配置运行PHP5.5.X
    Content encoding error问题解决方法
    ubuntu 中文显示乱码问题 (转)
    Ubuntu 12.04中文输入法的安装(zhuan)
    html5开发之viewport使用
    Windows/Linux 环境搭建Git服务器 + vs2012集成git
    Windows+VS+SVN实现版本控制
  • 原文地址:https://www.cnblogs.com/lmq3321/p/6674337.html
Copyright © 2020-2023  润新知