美文网首页我爱编程
《XML那些事...》 XML中的元素、属性、命名空间

《XML那些事...》 XML中的元素、属性、命名空间

作者: 0x584A | 来源:发表于2015-09-29 21:21 被阅读1222次

    《XML那些事...》->跟随『我』学习XML...

    By:0x584A Date:2015年9月29日

    第二章 XML中的元素、属性、命名空间

    上一章XML快速入门,不知道大家有没有听懂.. 不过没关系,反正我写的也没人看.. ((>﹏<)) 我就自己乐呵乐呵得了


    1. 元素

    先来说说元素吧,元素我们也可以理解为节点、标签、标记

    一个合理的标签要有起始结束(这个是不能省略),它们是成对出现的。接触过HTML、PHP等一看就知道..

    例如:<li>项目列</li>

    要注意的是,一个合理的标签可以嵌套若干个子标签:<div><span>内容</span></div>,但及允许合理的嵌套,不允许交叉嵌套。
    同样,一个XML文档必须要有一个根标签,其他标签都是这个根标签的子标签。

    <根元素>
        <子元素></子元素>
    </根元素>
    

    说到标签,那么就不得不说说标签的命名规范了。虽然XML允许自定义标签名称,但也不是无限制的,你总得让它认识你不?

    元素的命名规范:

    • 元素(标签)的名称可以包含英文、数字、减号、下划线、和英文句点。不允许出现特殊字符
    • 严格区分大小写
    • 只能已字母下划线开头
    • 名称字符之间不能有空格或制表符
    • 名称字符之间不能使用冒号

    2. 元素的属性

    说完了元素的标记,当然不得不提元素的属性了。与HTML标签一样,XML也具备属性这一样东东。

    <class>
        <person>
            <name id="DB101" sex="男">德邦总管-赵信</name>
            <time>2015年9月29日 01:07:23</time>
            <msg>陷阵之志,有死无生!</msg>
            <!--这里是CDATA区间-->
            <data><![CDATA[【德玛西亚学院】 -- 三年级学生 ]]></data>
        </person>
    </class>
    

    其中id="DB101" sex="男"便是其属性了,它同样也等价于:

    <class>
        <person>
            <id>DB101</id>
            <name>德邦总管-赵信</name>
            <time>2015年9月29日 01:07:23</time>
            <sex>男</sex>
            <msg>陷阵之志,有死无生!</msg>
            <!--这里是CDATA区间-->
            <data><![CDATA[【德玛西亚学院】 -- 三年级学生 ]]></data>
        </person>
    </class>
    

    个人倾向于后者的写法,因为这样在解析时会更加方便。

    • 一个元素可以有多个属性,属性之间通过空格隔开即可
    • 属性值一定要用引号(单引号或双引号)引起来
      在php中,单引号中的变量是无法解析的,双引号中的变量是可以正常解析的

    在xml中,单引号和双引号功能是一致的,没有任何区别

    • 属性名称的命名规范与元素的命名规范相同
    • 元素中的属性是不允许重复的
    • 标签属性所代表的信息也可以被改成用子元素的形式来描述

    3. 注释

    额... 这个就真没什么好讲的了,大家应该都懂的:``


    4. 特殊字符

    先上一段代码吧

    <class>
        <person>
            <id>DB101</id>
            <name>德邦总管-赵信</name>
            <time>2015年9月29日 01:07:23</time>
            <sex>男</sex>
            <msg>陷阵之志,有死无生!</msg>
            <force>武力 < 5 </force>
        </person>
    </class>
    

    看到没?代码作色都错了,说明在标签内部中<是不能这样使用的。<属于特殊字符范围内。如要使用,必须使用转义过后的字符进行输出。

    转义 替换 说明
    < < 小于
    > > 大于
    & & 和号
    ' ' 单引号
    " " 双引号

    所以通过转义字符,可以代码替换成这样即可:<force>武力 < 5 </force>

    5. CDATA区段

    当在标签内部特殊字符大量出现怎么办?此时我们就必须要使用CDATA区段了。其主要为了解决这种需求的。

    主要功能:把标签的内容当然普通文本内容

    语法如下:<![CDATA[内容]]>

    代码我也就直接引用上面的代码好啦。

    <class>
        <person>
            <id>DB101</id>
            <name>德邦总管-赵信</name>
            <time>2015年9月29日 01:07:23</time>
            <sex>男</sex>
            <msg>陷阵之志,有死无生!</msg>
            <!--这里是CDATA区间-->
            <data><![CDATA[【德玛西亚学院】 -- <三年级学生> ]]></data>
        </person>
    </class>
    

    好啦,就说到这吧?又学了多少了呢? 下章就来教大家怎么做一个简单的RSS(简易供稿),以及详解DTD约束

    相关文章

      网友评论

        本文标题:《XML那些事...》 XML中的元素、属性、命名空间

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