美文网首页我爱编程
《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