XML可扩展标记语言基础

前言

自用XML数据解析,学习来源网络
XML 元素是可扩展,以携带更多的信息。
文档被应用程序使用后又向文档新增信息不会中断应用程序,这个应用程序仍然可以找到 XML 文档中的原来的元素并产生同样的输出。

一、xml声明

<?xml 版本信息(编码信息)(文档独立性信息)?>

表示该文档是一个XML文档,以及遵循哪个XML版本的规范。
xml声明一般是xml文档的第一行,在XML声明之前不许有任何内容,包括空格。(XML 声明没有关闭标签。声明不属于XML本身的组成部分,不是 XML 元素,也不需要关闭标签。)

<?xml version=“1.0” encoding=”UTF-8” standalone=”no”?>
<note>
······
</note>

声明结构

version属性:表示当前xml文档的版本,如果写声明,就必须包含version属性,截止目前XML只有一个版本,即1.0。

encoding属性(可选):注明XML文档使用的字符编码方式。采用Unicode编码时可以在XML文档声明中省略字符集编码,当XML文档使用非Unicode编码时,必须在XML文档声明中指定其字符集编码,xml解析器会使用这个编码来解析xml文档。

standalone属性(可选):说明文档是否是独立的,yes(缺省)——该文档没有依赖外面的任何文件而可以独立存在,no——该文档依赖于外面的某个文件

如果同时设置了encoding和standalone属性,standalone属性要位于encoding属性之后。

二、根元素

XML 文档必须有一个元素是所有其他元素的父元素,是xml文档里面唯一的;它的开始是放在最前面,结束是放在最后面。(上述例子中的note元素)

三、元素

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

  1. 所有的xml元素都必须有结束标签,省略关闭标签是非法的;
<p>This is a paragraph</p>
  1. xml标签对大小写敏感;
<Message>这是错误的,大小写不一致。</message>
  1. xml必须正确地嵌套;
<b><i>This text is bold and italic</i></b>
 <i> 元素是在 <b> 元素内打开的,那么它必须在 <b> 元素内关闭。

元素的命名规则

  1. 名称中可以含字母、数字及其他的字符;
  2. 名称不能以数字或者标点符号开始;
  3. 名称中不能包含空格。
  4. 名称不能以字符 “xml”(或者 XML、Xml)开始

命名习惯

  1. 使名称具有描述性。使用下划线的名称也很不错。
  2. 名称应当比较简短,比如:<book_title>,而不是:<the_title_of_the_book>。
  3. 大小写尽量采用同一标准
    完全用小写字母来书写名称,当名称中包含多个单词时,相互之间用下划线隔开
    将每个单词的首字母大写,不使用分隔符
  4. 避免 “-” 字符。如果您按照这样的方式进行命名:“first-name”,一些软件会认为你需要提取第一个单词。
    避免 “.” 字符。如果您按照这样的方式进行命名:“first.name”,一些软件会认为 “name” 是对象 “first” 的属性。
    避免 “:” 字符。冒号会被转换为命名空间来使用。
    XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的名称规则来命名 XML 文档中的元素。
    非英语的字母比如 éòá 也是合法的 XML 元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。

空元素

不包含任何内容的元素。

四、属性

<元素名 属性名=“属性值”/>
一个元素可以有多个属性,它的基本格式为:
<元素名 属性名=“属性值” 属性名=“属性值”>;

属性通常提供不属于数据组成部分的信息(尽量用元素描述数据)。属性可能与数据无关,但是对需要处理这个元素的软件来说却很重要
" date" 属性提供有关 元素的额外信息

<note date="08/08/2008">
<to>George</to>
<from>John</from>
</note> 

注意:
属性值必须用引号包围(单双都可);
属性值中不能够直接包含<.”,&。

如果属性值本身包含双引号,那么有必要使用单引号包围它
<gangster name='George "Shotgun" Ziegler'>
或者可以使用实体引用:
<gangster name="George &quot;Shotgun&quot; Ziegler">

属性无法包含多重的值(元素可以)
属性无法描述树结构(元素可以)
属性不易扩展(为未来的变化)
属性难以阅读和维护

五、实体

在xml中,一些字符拥有特殊的意义。如果把字符“<”放在xml元素中,会发生错误,这是因为解析器会把它当作新元素的开始,这样会产生xml错误:

<message>if salary < 1000 then</message>

为了避免这个错误,请用实体引用来代替“<”字符:

<message>if salary &lt; 1000 then</message> 

预定义实体引用

&lt;	<	小于
&gt;	>	大于
&amp;	&	和号
&apos;	'	单引号
&quot;	"	引号

在 XML 中,只有字符 “<” 和 “&” 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

六、注释

<!-- This is a comment --> 

注释中不能包含–

七、特点

在 XML 中,空格会被保留,文档中的空格不会被删节。(输出时不会自动缩减空格)
XML 文档必须有根元素
XML 文档必须有关闭标签
XML 标签对大小写敏感
XML 元素必须被正确的嵌套
XML 属性必须加引号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值