• 使用Dom4解析xml


    XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。

    XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。

      XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。

          其中前两种属于基础方法,是官方提供的平台无关的解析方式;

          后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。

    ---使用DOM4J解析xml

    package Dom4j;
    
    
    import XmlDocument.XmlDocument;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    
    import java.io.File;
    import java.io.FileWriter;
    
    import java.io.Writer;
    import java.util.Iterator;
    
    /**
     * Created by zhangyu on 2017/7/24.
     */
    public class Dom4jTest{
    
        /**
         * 建立XML文档
         * @param fileName 文件全路径名称
         */
        public void createXml(String fileName) throws Exception {
            Document document = DocumentHelper.createDocument();  //创建document对象
            Element employee = document.addElement("employee");       //添加一个节点
            Element name = employee.addElement("name");              //为节点添加一个属性
            name.setText("张雨");
            Element sex = employee.addElement("sex");                 //为 节点添加一个性别属性
            sex.setText("男");
            Element age =  employee.addElement("age");                //为节点添加年龄属性
            age.setText("19");
            Writer fileWriter = new FileWriter(fileName);
            XMLWriter   xmlWriter =new XMLWriter(fileWriter);
            xmlWriter.write(document);
            xmlWriter.close();                                         //关闭流
    
        }
        /**
         * 解析XML文档
         * @param fileName 文件全路径名称
         */
        public void parserXml(String fileName) {
            File inputXml = new File(fileName);
            SAXReader saxReader = new SAXReader();
            try {
                Document document=saxReader.read(inputXml);       //SAX生成和解析XML文档
                Element employees = document.getRootElement();    //获得根节点
                for(Iterator i = employees.elementIterator(); i.hasNext();){
                    Element employee = (Element) i.next();
                    for(Iterator j = employee.elementIterator(); j.hasNext();){
                        Element node=(Element) j.next();
                        System.out.println(node.getName()+":"+node.getText());
                    }
                }
            } catch (DocumentException e) {
                e.printStackTrace();
            }
    
        }
    }

       其原理还是底层 的Dom和SAX解析

    测试类

    执行方法createXml()

    <?xml version="1.0" encoding="UTF-8"?>
    <employee><name>张雨</name><sex></sex><age>19</age></employee>

    执行方法parseXml()

    name:张雨
    sex:男
    age:19
  • 相关阅读:
    理解z-index
    别在最好的年纪辜负最好的自己
    一劳永逸的flex布局
    移动端常见的兼容性问题
    css代码颜色十六进制大全
    把select的小图标替换成 自己想要的图片
    HTML中的<select>标签如何设置默认选中的选项
    js获取元素,窗口的宽度、高度
    jQuery.NiceScroll简单的API
    Linux搭建ftp服务器简单教程及使用方法
  • 原文地址:https://www.cnblogs.com/zhangyu0217----/p/7229429.html
Copyright © 2020-2023  润新知