XML笔记

XML简介 

     xml是一门可扩展标记语言,英文名eXtensible Markup Language.XML和HTML有一定的相似之处,都是标记语言,这意味着这两门语言都是通过标记来进行编写代码的。但是也有很多的不同,html里面的标签是固定的,每个标签都有特定的含义。而xml里面的内容是可以自定义的。和HTML一样,xml也可以用来显示数据,和CSS一起使用等等,但是它的主要功能是存储数据,经常使用在配置文件当中。

XML语法

首先我们要先新建一个xml文件,后缀名为.xml

xml文件的第一行是固定的,为<?xml version="1.0" encoding="UTF-8"?> 这里的version是指版本号,一般我们使用的是1.0版本,当然也有其他版本,但是我们一般不用,因为各个版本之间不兼容。encoding是指指定编码集,还有一个属性是standalone,指的是是否需要依赖其他文件,值为yes/no.

 xml中的标签有头必须要有尾,如<person> </person>

 在xml是区分大小写的,标签名称不能以下滑线和数字开头,标签不能以xml开头,不能包含空格和冒号

在xml中,特殊符号是需要转义的,如     >:&lt;      <:&gt;     ":&quot;   &:&amp;    ':&apos;  等等

     如果有多个转移字符,我么可以将其放在CDATA区,格式如下:<![CDATA[ 内容 ]]>,PI指令可以为xml设置样式

注释,xml的注释和html一样,为<!--  -->  ,注释里面不能包含注释

约束:是指为xml设置一个模板,xml里面的定义需要按照模板来进行书写,其中约束分为DTD和SCHEMA两种

DTD

     xml中引入dtd的三种方式:

                     1.引入外部的dtd文件,格式如下

                                <!DOCTYPE 根元素名 SYSTEM "src">  

                             其中src是指dtd文件的路径

                      2.内部的dtd文件

                             <!DOCTYPE 根元素名 [

                                        dtd代码                  

                                        ]>

                       3.使用网络上的dtd文件

                              <!DOCTYPE  根元素名  PUBLIC  "DTD名称"  "DTD文件的url路径">

     dtd的语法

            dtd里面的元素分为简单元素和复杂元素,简单元素是指没有子节点的元素,复杂元素是由子节点的元素,定义这两种元素的规范不同,复杂元素的定义规范为<!ELEMENT 元素名  (子元素1,子元素2,...)>  ,其中括号里面的逗号表示的是按顺序进行编写,而逗号还可以改成  |    竖线 ,表示的是只能出现其中的一个,这与正则表达式相联系,子元素还可以修饰为 +,*,?等,也是与正则表达式相对应

   dtd的属性类型

           <!ATTLIST 元素名称 属性名称 属性类型 属性的约束>

        属性类型
            CDATA:字符串
                                    <!ATTLIST birthday 
                  ID1 CDATA #REQUIRED
                  >
            枚举类型:(男|女)
                           <!ATTLIST sex 
                  ID2 (男|女) #REQUIRED
                  >
                ID类型:值只能是字母或者下划线开头
                                        <!ATTLIST age
                      ID3 ID #REQUIRED
                      >
                属性的约束
                #REQUIRED:必须要有
                #IMPLIED:可有可无
                #FIXED:一个固定值
                直接值:如果定义的时候不定义则默认为这个直接值

xml的解析

   xml的解析分为dom和sax

         dom:根据xml的层级结构在内存中分配一个树形结构,然后封装成对象,文件过大会造成文件溢出,但是容易实现增删改
         sax:采用事件驱动,边读边解析,从上到下,一行一行的解析,解析到某一个对象,把对象名返回
            但是不能实现增删改操作

 xml的解析器

         sun公司:jaxp

        dom4j组织:dom4j

        jdom组织:jdom

  待续....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值