zoukankan      html  css  js  c++  java
  • 一文读懂四种常见的XML解析技术

    之前的文章我们讲解了《XML系列教程之Schema技术_上海尚学堂java培训技术干货》《XML的概念、特点与作用、XML申明_上海Java培训技术干货》,大家可以点击回顾一下之前将的技术,能更好地学习本内容。本文在此基础上再讲述XML的解析技术。(以上文字发表在我的上海尚学堂网站上,大家可以点击阅读更多Java、Python和大数据相关文章)

    一、四种常见的XML解析技术




    dom是解析xml的底层接口之一(另一种是sax)  ,而jdom和dom4j则是基于底层api的更高级封装  ,dom是通用的,而jdom和dom4j则是面向java语言的 。

    二、Dom解析Xml(了解)

    DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。

     

    2.1 Dom 解析主要对象




    2.2 Dom 解析Xml步骤

    l 创建解析器工厂对象
    l 由解析器工厂对象创建解析器对象
    l 由解析器对象对指定XML文件进行解析,构建相应DOM树,创建Document对象
    l 以Document对象为起点对DOM树的节点进行增删改查操作使用
    Api 文档参考地址:
    http://www.w3school.com.cn/xmldom/index.asp

    Dom解析解析学生成绩信息score.xml

    "1.0" encoding="utf-8" ?>

        
            张三
            2018001
            0113
            
    上海外国语

            123456
        
        
            王五
            2018002
            0114
            
    上海外国语

            657432
        

     

    /**
     * 解析xml文档
     * */
    public static void parseXml(){
        try{
            //得到DOM解析器的工厂实例
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            //从DOM工厂中获得DOM解析器
            DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder();
            //把要解析的xml文档读入DOM解析器
            Document doc = dbBuilder.parse("C:\java\idea_workspace_18\freemarker01\src\main\resources\scores.xml");
            System.out.println("处理该文档的DomImplementation对象  = "+ doc.getImplementation());
            //得到文档名称为Student的元素的节点列表
            NodeList nList = doc.getElementsByTagName("Student");
            //遍历该集合,显示结合中的元素及其子元素的名字
            for(int i = 0; i< nList.getLength() ; i ++){
                Element node = (Element)nList.item(i);
                System.out.println("Name: "+ node.getElementsByTagName("Name").item(0).getFirstChild().getNodeValue());
                System.out.println("Num: "+ node.getElementsByTagName("Num").item(0).getFirstChild().getNodeValue());
                System.out.println("Classes: "+ node.getElementsByTagName("Classes").item(0).getFirstChild().getNodeValue());
                System.out.println("Address: "+ node.getElementsByTagName("Address").item(0).getFirstChild().getNodeValue());
                System.out.println("Tel: "+ node.getElementsByTagName("Tel").item(0).getFirstChild().getNodeValue());
            }
     
        }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }

     
    结果
     

    三、Dom4J解析Xml(推荐)

    DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。
    Api文档参考地址: https://dom4j.github.io/



    3.1 D
    OM4J解析Xml步骤

     
     

    3.2 DOM4J 解析学生成绩信息 scores.xml

    l 获得document 对象

    SAXReader reader=new SAXReader();
    Document document=reader.read(new File("input.xml"));

     
    l 操作xml文档节点

    Element rootElm=document.getRootElement();//获得根节点
    Element memberElm=root.element(“member”); //获得子节点
    String text=memberElm.getText();//获得节点文本
    Element ageElm=newMemberElm.addElement(“age”);//添加子节点
    ageElm.setText(“29”);//设置节点文本
    parentElm.remove(childElm);//)删除某节点



    这就是上海尚学堂Java培训的XML系列教程课件简约版,获取详细全套Java视频教程请联系留下扣扣薇芯等联系方式,稍后会发相关资料给您。

  • 相关阅读:
    spark学习(9)-spark的安装与简单使用
    Hadoop学习(8)-scala环境配置及简单使用
    Hadoop学习(7)-hive的安装和命令行使用和java操作
    Hadoop学习(5)-zookeeper的安装和命令行,java操作
    Hadoop学习(6)-HBASE的安装和命令行操作和java操作
    Hadoop学习(4)-mapreduce的一些注意事项
    Hadoop学习(3)-mapreduce快速入门加yarn的安装
    Hadoop学习(2)-java客户端操作hdfs及secondarynode作用
    python执行Linux命令
    python写的百度贴吧邮箱采集(带界面)
  • 原文地址:https://www.cnblogs.com/shsxt/p/9681989.html
Copyright © 2011-2022 走看看