A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 巴拉巴拉x 初级黑马   /  2018-5-21 10:15  /  606 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 巴拉巴拉x 于 2018-5-21 10:19 编辑

XML

XML作为配置文件完成模拟Tomcat

  • 什么是XML?
    • 可扩展的标记语言
    • 允许用户自定义标签
    • XML任何语言都可以解析
  • 作用
    • 传输和存取数据
      • 限制传输数据用JSon,存取数据用数据库
    • 软件的配置文件
  • XML的使用
    • XML的语法
    • 基本语法
      • 查W3Shool文档


XML的语法

  • XML的文档声明
    • 通常出现在XML文档的第一行第一列
    • <?xml 属性名="属性值" 属性名="属性值" ?>
      • 属性有三个
      • version是必需的,一般是1.0,2.0不向下兼容,所以一般使用1.0
      • encoding:字符集,是使用浏览器打开的时候采用的默认的字符集的编码.(可选)
      • standalone:描述XML文档是否需要依赖其他的文件,(可选)值是yes或者no.

  • XML的注释
    • 和html一样:
  • XML的元素
    • 查W3Shool文档的XML
    • 命名规则
    • 元素就是标签
    • 名称中不能包含 ":"
  • XML的属性
    • 命名规则和元素差不多
    • 属性值需要使用引号
  • XML的特殊字符和CDATA区
    • 特殊字符
      • < ; 是 <
      • > ; 是 >
      • & ; 是 &
      • &apos 是 '(单引号)
      • 分号要挨着特殊字符结尾,中间不能有空格.
    • CDATA区
      • character Data的缩写
      • 写在这个区域的都会被当做字符串,不会当做特殊字符
      • <![CDATA[ 内容 ]]>
XML的解析

  • 概念
    • 从XML文档中获得想要的信息(通过代码完成)
    • XML解析的方式
      • DOM解析
        • Document Object Model
      • SAX解析
        • Simple Api for XML
      • DOM和SAX的区别
        • DOM方式就是把这个文档以DOM树的形式加载到内存中然后进行解析
          • 缺点:如果文档特别大,容易导致内存溢出
          • 优点:可以对XML进行增删改的操作
        • SAX方式:是以事件驱动的方式,逐行进行解析的.
          • 缺点:不能对文档进行增删改的操作
          • 优点:就算文档特别大不会导致内存的溢出

      • 针对这两种解析方式,不同的公司提供了不同的API的实现
        • JAXP:SUN公司提供的一套XML的解析的API
        • JDOM:开源组织提供了一套解析XML的API叫jdom
        • DOM4J:开源组织提供了一套解析XML的API叫dom4j
        • pull:主要应用在Android手机的解析


  • 使用DOM4J来解析
  • 导入jar包
  • 创建解析器
    • SaxReader sr = new SaxReader();
  • 解析文档获得代表整个文档的对象:document,包含element ,attribute,text这三个同城为node(节点).NOde就相当于java中的Object.
    • Document dc = sr.read("文件路径");
  • 先要获得根节点
    • Element root = dc.getRootElement();
  • 从根节点开始查找其他节点:element(),elements();
    • Element el = root.element("元素名");根节点下的第一级元素中指定元素第一次出现的那个元素
    • String s = el.getText(),元素对象中的文本
XPath

  • dom4j 支持XPath的jar包
    • jaxen.jar
  • dom4j的XPath支持的API:
    • LIst
    • Node
  • 常用的命令
    • 看API中的实例2,5,6
XML的约束

  • 用来约束XML的文档中可以出现哪些标签,不能出现哪些标签,标签中是否有顺序,出现的次数
  • 用来规范XML的写法
  • XML的约束的种类及其区别
    • 查看w3shool
    • 两种
      • DTD
        • 一个XML文件只能引入一个DTD
      • Schema
        • 一个XML文件可以引入多个Schema文件
        • 引入位置在schema标签下引入.(应该是根标签吧?)
        • 如果多个Schema文件中定义了同一个标签或者属性,如何处理?
          • 不同的名称空间起不同的名字(冒号右边是名字)

      • 如何区分不同的XML文件哪个是约束文件哪个是被约束文件
      • 看 "http://www.w3.org/2001/XMLSchema-instance"中有没有 "-instance",有就是被约束的,没有就是约束约束别人的.
    • 区别
      • DTD的语法是自成一体的,Schema的语法就是XML的语法
      • Schema更容易被解析器所解析,且他支持名称空间而DTD不支持名称空间
      • Schema有比DTD更加强大的语义和语法的约束
    • DTD的语法
      • 引入方式由两种
        • 内部DTD
        • 外部DTD
          • 本地DTD
            • system
          • 网络DTD
            • public



    • Schema的语法
      • xmlns:xml name space
      • 简单标签:没有子元素,直接写文本的
      • 复杂标签:里面包含子元素的
      • 名称空间



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马