xml

作者: 丫甘九 | 来源:发表于2019-03-18 14:06 被阅读0次

    xml的简介

    eXtensible Markup Language
    • 可扩展标记型语言
    标记型语言
    • html是标记型语言
      也是使用标签来操作
    可扩展
    • html里面的标签是固定的,每个标签都有特定的含义<h1/>

    • xml里面标签是可以自己定义的,可以写中文的标签<猫><猫/>
    xml的用途
    • html是用于显示数据,xml也可以用于显示数据(但不是主要功能)
    • xml主要功能是为了储存数据
    xml是w3c组织发布的
    xml有俩个版本1.0 1.1
    • 使用的都是1.0版本,(1.1版本不能向下兼容)
    xml的应用
    • 不同的系统之间传输数据
      qq之间数据的传输
      画图分析数据


      QQ图片20190318160503.png
    • 用来表示生活之间有关系的数据


      QQ图片20190318160607.png
      QQ图片20190318160646.png
    • 经常用在文件配置
      比如现在连接数据库,肯定知道 数据库的用户名和密码,数据名称
      比如修改数据库的信息,不需要修改源代码 ,只要修改配置文件就行了

    xml语法

    (1)xml的文档说明(重要)
    • 创建一个文件,后缀名是.xml
    • 如果写xml,第一步,必须要有一个文档说明(写了文档说明之后,表示写xml文件的内容)
      <?XML version="1.0" encoding="utf-8"?>
    • 文档说明必须写在第一行第一列
    • 属性
      version:xml的版本 1.0(使用) 1.1
      encoding:xml编码 gbk(简体中文) utf-8(包含英文) iso8859-1(不包含中文)
      standalone:是否需要依赖其他文件 yes/no
    xml中文乱码问题解决
    • 画图分析乱码
    • 保存时候的编码和设置打开时候的编码一致,不会出现乱码


      image.png
    (2)定义元素(标签)(重要)
    标签定义
    • 标签定义有开始必须有结束<person></person>
    • 标签没有内容,可以在标签内部结束;<a/>
    • 标签可以嵌套,必须要求合理嵌套
      合理嵌套:<aa><bb></bb></aa>
      不合理嵌套:<aa><bb></bb><aa>
    • 一个xml中,只能有一个根标签,其他标签都是这个标签下面的的子标签
    • 在xml中把空格和换行都当成内容来解析
      下面这俩段代码是不一样的
      <a>11111111</a>
      <a>
      11111111111
      </a>
    • xml的标签可以是中文
    • xml中标签的名称规则
      (1)xml代码区分大小写
      <q><Q>:这俩个标签是不一样的
      (2)xml中标签不能以数字或者下划线开头
      <1a><_a>:这样是不正确的
      (3)xml的标签不能以xml,Xml,XMl,xmlaXMLb,这些都是不正确的
    (3)xml中定义属性(重要)
    • html是标记型文档,可以有属性
    • xml也是标记型文档,可以有属性
    • 属性定义的要求
      (1)一个标签上可以有多个属性
      <person id1= "aaaa" id2="bbbb"></person>
      (2)属性名称不能相同
      <person id1= "aaaa" id1="bbbb"></person>这是不正确的
      (3)属性名称和属性值之间用=,属性值用引号包起来(可以是单引号也可以是双引号)
      (4)xml属性的名称规范和元素的名称规范一致
    (4)xml中的注释(重要)
    • 写法
      *注:
      注释不能嵌套
      -->
    • 注释也不能放在第一行,第一行第一列必须放文档注释
    (5)xml特殊字符(重要)
    • 如果想要在xml中现在a>b a<b 不能正常显示,因为把<当成标签
    • 如果想要显示,需要对特殊字符<>进行转义


      image.png
    (6)CDATA区(了解)
    • 可以解决多个字符都需要转义的操作
      if(a>b && a<b && b>c){}
      把这些内容放在CDATA区里面,就不需要转义了
    • 写法
      <![CDATA [ 内容 ] ]>
      代码
    <![CDATA   [<b>   if(a>b && a<b && b>c){}   </b> ]  ]>
    
    • 把特殊字符当成文本内容而不是标签
    (7)PI指令(处理指令)(了解)
    • 可以在xml中设置样式
    • 写法
    <?xml-stylesheet type="text/css" href="css的路径"?>
    
    • 设置样式,只能对英文标签起作用,对于中文标签名称不起作用

    xml的约束

    • 为什么需要约束?
    • 比如现在定义一个person的xml文件,只想要这个文件里面保存人的信息,比如name,age等,但是在xml文件中写了一个标签<猫></猫>,发现可以正常显示,因为符合语法规范,但是猫肯定不是人的信息,xml标签是自定义的,需要技术来规定xml中只能出现的元素,,这个时候需要约束
    • xml约束的技术:dtd约束和schema约束

    xml解析

    xml的解析方式(技术):dom和sax
    • 话题分析使用dom和sax解析xml的过程
    • don解析和sax解析的区别
      dom方式解析
      根据xml的层级结构在内存中分配一个树形结构,把xml的标签,属性,和文本都封装成对象
      缺点:如果文件过大,则会造成内存溢出
      优点:很方便实现增删改查操作
      sax方式解析
      采用事件驱动,边读边解析
      -从上到下,一行一行的解析,解析到某一个对象,返回对象名称
      缺点:不能实现增删改查操作
      优点:如果文件过大,不会造成内存溢出,方便实现查询操作

    相关文章

      网友评论

          本文标题:xml

          本文链接:https://www.haomeiwen.com/subject/nxsvmqtx.html