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