《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约束。
网友评论