• Day05_JAVAEE系列:XML


    XML概述

    1)什么是xml?

    xml, eXtend Markup Language, 可扩展标记语言

    2) html vs xml

    都由w3c组织制定的.

    html语法特征:语法比较松散

             1).不区分大小写 <p> <P> <br/> <BR/>

             2).标记的写法不严谨 <p>xxxx</p> <p>xxxx

    xml语法,开始的初衷是为了弥补html的缺点

    html作用:负责网页的结构

    xml作用:

                1)描述带关系的数据结构(作为软件的配置文件)

        2)存储数据(作为小型的“数据库”)

               

                3)xml作用

                 3.1描述带关系的数据结构(作为软件的配置文件)(大部分场景)

          .properties文件 键值对   无法描述关系

                               user=root

                               password=root

                               user=root(错误描述)

                               password=root(错误描述)

                       db.xml 文件:

                        <db-list>
                          <db name="mysql">
                                  <user>root</user>
                                    <password>root</password>
                            </db>
                           

                 <db name="oracle">
                                  <user>admin</user>
                                    <password>1234</password>
                                         </db>
                       </db-list>

        应用:tomcat服务配置文件,三大框架(ssh struts2 spring hibernate)

                3.2存储数据(作为小型的“数据库”)

         应用:mysql的数据可以到处,然后用xml文件存储

    三、XML语法

         xml后缀

         浏览器内置了xml解析器,所以可以用浏览器来解析xml文件

         1)xml文档声明

         语法:<?xml version="1.0" encoding ="utf-8"?>

        version:   xml文件版本,通常1.0即可

        encoding :xml文件被解析器使用什么编码解析

        总结:

                xml文件读取时中文时的编码问题

        1.1保存xml文件时的编码(另存为选择编码)

                1.2解析器解析时使用什么编码(xml文档声明的encoding属性)

                 以上两处 的编码保持一致就不会出现中文乱码问题.

         standalone:是否是独立的xml文件(当前的xml是否依赖其他文件)

    2)注释

      和html注释一样<!-- -->

    3)标签、属性(重点)

    标签语法:

      3.1不能以数字开头

      3.2严格区分大小写

      3.3标签名中间不要有空格和冒号,不要使用xml作为名称(w3c的保留字)

      3.4在一个xml文件中有且仅有一个根标签(根元素)

    属性语法:

      3.1属性值必须使用单引号或双引号包含,不能没有或者单双引号混用

      3.2一个标签内可以存在多个属性,但不能重复

    4)特殊字符

         和html一样

          特殊字符    转义字符

        <    &lt;

        >    &gt;

        空格    &nbsp;

        ...

    5)CDATA块

      可以批量处理特殊字符,在CDATA块中的代码不会解析成标签

    6)处理指令(了解)

      <?xml-stylesheet type="text/css" href="person.css"?>

    告诉浏览器如何解析xml文件(使用什么样式)

    可以让xml变为html文件(使用什么样式)

    四、XML约束之DTD约束(看懂即可)  -- 查看w3cshool文档即可

      两个概念区分:

        1.良好的xml文件:符合w3c制定的语法规则

      2.有效的xml文件:符合开发者制定的约束规则

     xml约束分类:

         dtd约束: 语法比较简单,功能不够强大

          应用:struts2, hibernate

         schema约束:语法比较复杂,功能比较强大,约束比较细致.

             应用:spring tomcat配置

      dtd约束语法:

        要求:能够看懂dtd约束,写出一个有效的xml文件!!

        1)dtd使用方式

                       1.1 内部dtd

             特点:dtd内容直接写在xml文件中

                       1.2外部本地文件导入

                              <!DOCTYPE note SYSTEM "note.dtd">  dtd文件在本地文件系统

           1.3外部网络文件导入

            <!DOCTYPE 根元素 PUBLIC “名称”  “http://struts.apache.org/dtds/struts-2.0.dtd”>

               

                  2)约束元素

                    <!ELEMENT 元素名称 类别><!ELEMENT 元素名称 (元素内容)>

                   类别:

          EMPTY:  代表空元素

          PCDATA:    代表普通字符串(不包含子元素)

          ANY:代表元素任意内容(包含空元素,包含子元素)

          

         (元素内容)

          顺序问题:

            (元素1,元素2,元素3):一定依次出现元素1,再出现元素2,最后出现元素3

          数量问题:

            元素1:有且仅出现1次

            元素1*:出现0次或多次

            元素1+:出现1或多次

          3)约束属性

            <!ATTLIST 元素名称 属性名称 属性类型 默认值>

          默认值:约束属性是否必填

              #REQUIRED 必须的

              #IMPLIED   非必须的
                   #FIXED value  固定值的
        
             属性类型:约束属性值是什么
                  CDATA  普通字符串
                  (en1|en2..)  枚举,多选一
                  ID   唯一,在同一个xml文档中属性值必须唯一
            五、XML解析之dom解析
        1)什么是xml解析?
        使用java代码去控制(操作:读取、修改)xml文件

        2)xml解析两种方式
        dom解析:面向对象的方法。
             和html的dom类似。
            对象:
            Node对象
                Document对象
                Element对象
                Attr对象  
                Text对象
                Comment对象
            dom树
        sax解析:基于事件驱动的方法。

        3)xml的dom解析工具
            sun官方-jaxp工具 (java的标准)
            非官方- jdom工具
            非官方- dom4j    (虽然不是标准,好用!!)
                
        4)jaxp的dom解析工具

        官方: 纳入jdk的规范中。 org.w3c.dom.*  api

          4.1 读取xml文件的步骤:
                a)创建DocumentBuilderFactory对象
                b)获取一个DocumentBuilder对象
                c)调用parse方法去读取xml文件
            
        4.2 写出xml文件的步骤:
                a)创建TransformFacotory对象
                b)获取一个Transform对象
                c)调用transform方法写出内容到xml文件


        总结:
        1)junit工具(必须掌握)    
        2)xml语法(重点)
        3)dtd约束(能写xml文件--  手动根据dtd文件写有效的xml文档)
        4)jaxp的dom解析api (必须回去练习)


  • 相关阅读:
    深度学习学习总结
    线性回归学习总结
    机器学习常用算法总结
    2020年,给自己立个flag
    与博客添网易云外钟墯之坑
    给博客添加网易云外链时掉的坑
    BEGINNING
    【华为云技术分享】程序员真香定律:源码即设计
    【华为云技术分享】【DevCloud · 敏捷智库】如何利用核心概念解决估算常见问题
    差点被祭天!狂欢618,且看研发人如何绝地求生
  • 原文地址:https://www.cnblogs.com/dantefung/p/4746422.html
Copyright © 2020-2023  润新知