• 一文读懂四种常见的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视频教程请联系留下扣扣薇芯等联系方式,稍后会发相关资料给您。

  • 相关阅读:
    CodeForces C. Songs Compression
    CodeForces B. Obtaining the String
    Linux-命令学习-df
    phplib系统开发经验总结
    阶段3-团队合作项目-网络安全传输系统sprint1-传输子系统设计第3课-加密传输优化
    阶段3-团队合作项目-网络安全传输系统sprint1-传输子系统设计第2课-OpenSSL加密系统
    阶段3-团队合作项目-网络安全传输系统sprint1-传输子系统设计第1课-系统程序框架搭建
    阶段3-团队合作项目-网络安全传输系统sprint0-产品规划与设计第1课-产品功能展示
    阶段2-新手上路项目-移动物体监控系统Sprint4-嵌入式web服务器开发第3课-CGI程序开发
    阶段2-新手上路项目-移动物体监控系统Sprint4-嵌入式web服务器开发第2课-CGI快速入门-网页控制LED
  • 原文地址:https://www.cnblogs.com/shsxt/p/9681989.html
Copyright © 2020-2023  润新知