• 掌握XML系列(2)创建格式良好的XML文档


    前言:XML听起来,看起来就是一本标记语言,但是它确实是一个很大的话题,值得我们去研究的!感谢大家对前一篇XML文章的关注!

         

              创建格式良好的XML文档,其实就是使得我们的XML文档能够符合W3C的XML1.0规范,相信大家也不想看W3C条条框框的规范,我们就从实际出发,来说说,怎么

    样写XML文档.

         

         1.XML中元素:

              前面我们说过,XML的语法要求很严格的,所有的XML标记要关闭的.包含两点:首先.每个XML的开始标记,如<person>都必须有一个XML的结束标记</person>,例子如下:

         


    Code
    <person>
     
    <name>
      
    <firstname>xiao</firstname>
     
    <lastname>yang</lastname>
     
    </name>
    </person>

              其次就是,如果元素没有子元素或者数据,那么就使用空元素的语法来关闭.如:

         



    <person>
     
    <name firstname="xiao" lastname="yang"/>
    </person>

         

         所以,要关闭所有的元素,而且每个层结结构都必须在相同的级别上打开和关闭,如下就不正确:

         


    <person>
     
    <name>
     //---------------------
      
    <firstname>xiao
     
    </name>
      
    </firstname>
     //--------------------

     
    </person>

              大家看看中间我用两条线标记的部分,<name>是<firstname>的父元素,但是他们关闭的层次有问题,应该先关闭firstname,然后才是name.

              以上讲的只是创建良好XML文档的最基本的规则,下面我们就来详细的说下更多的规则,我会在中间穿插很多的例子,避免枯燥.

              1.1文档根的

                   XML文档必须有唯一的文档根.根元素包含其余的文档数据,换言之,其余的部分就是根元素的子元素,如下就不不对:

                   



    <?xml version="1.0" ?>
    <capitals>
     
    <country name="china">beijing</country>
     
    <country name="usa">w d.c</country>
    </capitals>

    <population>
     
    <num>12</num>
    </population>

         上面的文档有两个根元素<capitals>和<population>,所以格式不良好,要使得格式良好就要改改.如下(其实改的方式很多的,只要有唯一的根元素就行):



    <?xml version="1.0" ?>
    <data>
     
    <capitals>
      
    <country name="china">beijing</country>
      
    <country name="usa">w d.c</country>
     
    </capitals>

     
    <population>
      
    <num>12</num>
     
    </population>
    </data>

         上面的就行了.

         

              1.2 合法和不合法的名称

              在XML中使用元素要遵守一些命名规范,即区分大小写等.下面的就是代表不同的元素,尽管意思一样:

              ,<person>,<PERSON>,<Person>.

               此外还有一些规则:

                  (1)"<"字符之后不能存在空格,如<person name>就不行,而<personname>就可以   

                  (2)  元素的名字不能以数字或者标记符号开头,可以以字母和下划线开头:如<2name>不合法,而,<_2name>合法.

                  (3)第一个字符之后可以有"-"".":如<.name>不合法,而<name.firstname>合法

                  (4)不要使用冒号:因为这会与以后要说的命名空间冲突,所以<name:firstname>不合法.

                  (5)最好不要用任何形式的xml开头,如<xml_name><Xml_name>就不行,因为一般的xml解析器对此有要求的.

              其实XML中规则也不是那么的多,就像我们当初学习任何一门语言,如C#,都有语法的要求,大家用多了就自然明白了,也不会在乎那么多.所以,xml也一样,大家看

    多了,自然就认为这些规则也熟悉.

              1.3 非法的字符

              在开始和结束标记之间的文本称为解析过的字符数据或者PCDATA,,可以在数据中使用除了"<"和"&"以外的任意字符,所以下面的例子:

              

                   


    <?xml version="1.0" ?>
    <person>
    <hello&
    </person
    >

              

              把上面的文件保存为person.xml,然后用浏览器打开就会看见如下:

           

         因为在浏览器中有内置的解析器.可以检查XML文档格式良好

         1.4实体引用

          关于实体引用大家应该都熟悉的,因为在html也有,    

          & 的xml实体引用就是&amp; 举例:如果向在xml文档中显示 xiao&yang 那么就就要在编写xml文档时用xiao&amp;yang

         <的xml实体引用就是 &lt;

         >的xml实体引用就是&gt;

         '(单引号)xm实体引用是&apos;

         "(双引号)xml实体引用是&quto;

         

         注意:上面的一些字符,当你想在PCDATA中输入时,就要用他们饿实体引用

         注意PCDATA的概念     下面我们来练习上面的知识:

         加入你想在浏览器中显示下面的效果的(我的网络不是很好,插入代码很慢,所以是手写的,大家见谅):

         <?xml version="1.0"?>

         <person>

              <name>xiao&yang</name>

              <age><30</age>

              <address>"wuhan"</address>

         </person>

         那么你的xml文档就如下编写:

         

         <?xml version="1.0"?>

         <person>

              <name>xiao&amp;yang</name>

              <age>&lt;30</age>

              <address>&quot;wuhan">&quot;</address>

         </person>

         当然,那些实体是已经定义好了的,我们也可以定义自己的实体引用,称为通用实体.在DTD中,可以将实体定义为:

         <! ENTITY  personal "this is my person identify ">

         然后你就可以在你的xml文档中引用自己定义的实体引用:

         <person>

              <mypersonal>&personal </mypersonal>

         </person>

         用浏览器看就是如下:

            <person>

              <mypersonal>this is my person identify </mypersonal>

         </person>

  • 相关阅读:
    Excel与Access的互作
    ThinkPHP第三天(公共函数Common加载,dump定义,模板文件,定义替换__PUBLIC__)
    ThinkPHP第四天(U函数,URL类型参数配置,伪静态后缀名配置,数据传递与获取$_GET等)
    ThinkPHP第六天(正则表达式)
    PHP函数积累
    bootstrap基础知识点YI
    集合中的方法
    hashable与unhashable
    集合的特点
    元组
  • 原文地址:https://www.cnblogs.com/tangself/p/1768814.html
Copyright © 2020-2023  润新知