XML一页通

  1. XML内容
    1. 概念

      可扩展标记语言(Extensible Markup Language)

  • 可扩展:标签都是自定义的
  • Xml与html的区别:都产自W3C(万维网联盟)
  1. 语法
    1. 第一行必须定义为文档申明。
    2. 文档中有且仅有一个根标签
    3. 属性必须用引号(单双都可以)引起来
    4. 标签必须正确关闭
    5. Xml的标签名称区分大小写

       

  2. 组成部分
    1. 文档申明

      1.格式:<? 属性列表 ?>

      2.属性列表:

          * version:版本号,必须属性。主流1.0,1.1不向下兼容

      * encoding:编码方式

      *standalone:是否独立(基本不用, 而且现在也无效)

          * yes:不依赖其它文件

          * no:依赖其它文件

    2. 指令(了解):结合CSS,和html相同
    3. 标签:
      1. 属性无法包含多重的值(元素可以)
      2. 属性无法描述树结构(元素可以)
      3. 属性不易扩展(为未来的变化)
      4. 属性难以阅读和维护

       

    4. 属性:id属性唯一值
    5. 文本:

      CDATA区:原样展示区内容

      <![CDATA[ 内容 ]]>

    6. 约束:规定XML文档的书写规则
      1. 作为框架的使用者(程序员):
        1. 能在XML中引入约束文档
        2. 能够简单读懂约束文档
      2. 分类:
        1. DTD:一种简单的约束技术(不能对值进行约束)
        2. Schema:一种复杂的约束技术
      3. DTD:
        1. 引入DTD文档到XML文档中
          1. 内部dtd:将约束规则定义在XML文档中
          2. 外部dtd:将约束规则定义在外部的dtd文件中
            1. 本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件位置">
            2. 网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名(随便)" "dtd文件位置URL"
      4. Schema:
        1. 引入:
          1. 填写XML文档的根元素
          2. 引入xsi前缀, xmlns:xsi="w3c固定格式"
          3. 引入xsd文件命名空间,xsi:schemaLocation="命名空间 文档位置"
          4. 为每一个xsd约束声明一个前缀,作为标识 xmlns="http://www.itcast.cn/xml"
  3. 解析:操作xml文档,将文档中的数据读取到内存中
    1. 操作xml文档
      1. 解析(读取):将文档数据读取到内存中
      2. 写入:将内存中的数据保存到xml文档中。持久化存储。
    2. 解析xml的方式:
      1. DOM:将标记语言文档一次性加载进内存,在内存中形成DOM树。适用于服务器
        1. 优点:操作方便,可以对文档进行CRUD操作
        2. 缺点:占内存
    3. SAX:逐行读取,基于事件驱动。适用于移动设备、智能硬件。
      1. 优点:不占内存
      2. 缺点:只能读取,不能增删改。
    4. Xml常见的解析器:
      1. JAXP:SUN,支持dom、sax两种思想,速度慢,操作复杂
      2. DOM4J:非常优秀
      3. Jsoup:HTML、CSS、XML通用解析器
      4. PULL:Android系统内置的解析器
    5. Jsoup快速入门:
      1. 步骤:
        1. 导入jar包
        2. 获取Document对象
        3. 获取对应的标签Element对象
        4. 获取数据
      2. 代码:
        1. 获取xml路径
          1. String path = JsoupDemo1.class.getClassLoader().getResource('student.xml').getpath();
        2. 解析xml文档,加载进内存,获取dom树—>Document
          1. Document document = Jsoup.parse(new File(path), 'utf-8');
        3. 获取元素对象Element
          1. Elements elements = document.getElementsByTag("name");
        4. 获取数据
          1. String name = element.text();
    6. Jsoup对象的使用:
      1. Jsoup:工具类, 可以解析html或xml文档,返回Document
      2. Document:文档对象,代表内存中的DOM树
      3. Elements:元素Element合集

     

 

posted on 2019-10-28 20:06  剑飞花(373500710)  阅读(143)  评论(0编辑  收藏  举报

导航