分类: html java2010-03-12 17:04 903人浏览 批评(1) 珍藏 告发
4.1.1 XML文件构造
一个XML文件一般包含文件头和文件体两大部份
1. 文件头
XML文件头由XML声明与DTD文件范例声明构成。个中DTD文件范例声明是能够缺乏的,关于DTD声明将在后续的内容中引见,而XML声明是必须要有的,以使文件相符XML的规范规格。
在前面的Flowers.xml文件中的第一行代码即为XML声明:
<?xml version="1.0" encoding="gb2312"?>
个中:
“<?”代表一条指令的最先,“?>”代表一条指令的完毕;
“xml”代表此文件是XML文件;
“ version="1.0" ”代表此文件用的是XML1.0规范;
“ encoding="gb2312" ” 代表此文件所用的字符集,默认值为Unicode,假如该文件中要用到中文,就必需将此值设定为gb2312。
注重:XML声明必需出现在文档的第一行。
2. 文件体
文件体中包含的是XML文件的内容,XML元素是XML文件内容的基础单位。从语法讲,一个元素包含一个肇端标记、一个完毕标记以及标记之间的数据内容。
XML元素与HTML元素的花样基础雷同,其花样以下:
<标记称号 属性名1="属性值1" 属性名1="属性值1" ……>内容</标记称号>
一切的数据内容都必需在某个标记的最先和完毕标记内,而每一个标记又必需包含在另一个标记的最先与完毕标记内,构成嵌套式的散布,只需最外层的标记没必要被其他的标记所包含。最外层的是根元素(Root),又称文件(Document)元素,一切的元素都包含在根元素内。
在前面的Flowers.xml文件中,根元素就是<Flowers>,根元素必需而且只能有一个,在该文件有三个<Flower>子元素,如许的元素能够有多个。
4.1.2 XML的基础语法
1. 诠释
XML的诠释与HTML的诠释雷同,以“<!--”最先,以“-->”完毕。
2. 辨别大小写
在HTML中是不辨别大小写的,而XML辨别大小写,包含标记,属性,指令等。
3. 标记
XML标记与HTML标记雷同,“<”示意一个标记的最先,“>” 示意一个标记的完毕。XML中只需有肇端标记,就必需有完毕标记,而且在运用嵌套构造时,标记之间不能交织。
在XML中不含任何内容的标记叫做空标记,花样为:<标记称号/>
4. 属性
XML属性的运用与HTML属性基础雷同,但须要注重的是属性值要加双引号。
5. 实体援用
实体援用是指剖析文档时会被字符数据庖代的元素,实体援用用于XML文档中的特别字符,不然这些字符会被诠释为元素的构成部份。比方,假如要显现“<”,须要运用实体援用“<”不然会被诠释为一个标记的肇端。
XML中有5个预定义的实体援用,如表 4.1所示。
表 4.1 XML预定义的实体援用
6. CDATA
在XML中由一个特别的标记CDATA,在CDATA中一切文本都不会被XML处置惩罚器诠释,直接显现在浏览器中,运用要领以下:
<![CDATA[
这里的内容能够直接显现。
]]>
7. 处置惩罚指令
处置惩罚指令运用来给处置惩罚XML文件的运用程序供应信息的,处置惩罚指令的花样以下:
<?处置惩罚指令称号 处置惩罚指令信息?>
比方,XML声明就是一条处置惩罚指令:
<?xml version="1.0" encoding="gb2312"?>
个中,“xml”是处置惩罚指令称号,version="1.0" encoding="gb2312"是处置惩罚指令信息。
4.2 XML与CSS
运用CSS能够用来设定XML文件的显现体式格局,即在XML文件的头部,XML声明的下面到场下面一条语句:
<?xml:stylesheet type="text/css" href="css文件的URL"?>
下面我们经由过程例子来引见怎样运用CSS来显现XML文件。起首竖立一个css文件,代码以下:
flowers.css:一个显现XML文件的CSS款式
flower{font-size:24px; display:block}
vendor{font-size:36px;color:red}
price{display:block}
然后,在flowers.xml文件中运用这个css款式,即在flowers.xml文件中的XML声明下面到场以下语句:
<?xml:stylesheet type="text/css" href="flowers.css"?>
完全的程序代码以下:
ex4_3_01.xml:运用CSS 显现XML文件
<?xml version="1.0" encoding="gb2312"?>
<?xml:stylesheet type="text/css" href="Flowers.css"?>
<Flowers>
<Flower>
<Vendor>shop1</Vendor>
<Name>iris</Name>
<Price>$4.00</Price>
</Flower>
<Flower>
<Vendor>shop2</Vendor>
<Name>iris</Name>
<Price>$4.30</Price>
</Flower>
<Flower>
<Vendor>shop3</Vendor>
<Name>iris</Name>
<Price>$3.50</Price>
</Flower>
</Flowers>
此例在浏览器中的显现结果如图 4.2所示。
图 4.2 运用CSS 显现XML文件
用CSS来显现XML文件时,不具备任何选择性,也就是说,根元素之下的一切数据都会被悉数显现,不能转变原文件的构造和内容的递次。别的,CSS并不支撑中文标记,由于CSS 不是特地为XML开辟的款式言语,而下面要引见到的XSL就能够,XSL是特别为XML设想的,它比CSS更加庞杂。
4.3 XSL
在上一节引见的用CSS显现XML文件,结果不是很抱负,实际上,CSS主如果合适HTML文件,关于XML这类数据文件,CSS就不合适了,尤其是对那些须要根据差别的前提将文件内容重新排列显现的状况,而用XSL就能够。
XSL是当前最强大和天真的款式言语,是特别为运用XML而设想的,它比CSS要庞杂的多。然则,现在它还未被很好的支撑,也还没有末了完成。
运用XSL来设定XML文件的显现体式格局,即在XML文件的头部,XML声明的下面到场下面一条语句:
<?xml:stylesheet type="text/xsl" href="xsl文件的URL"?>
下面我们经由过程例子来引见怎样运用XSL来显现XML文件。起首竖立一个xsl文件,代码以下:
flowers.xsl:用来显现XML文件的xsl文件
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match = "/">
<table border="1">
<tr align="center">
<th width="100">Vendor</th>
<th width="100">Flower</th>
<th width="100">Price</th>
</tr>
<xsl:for-each select="//Flowers/Flower">
<tr align="center">
<td><xsl:value-of select="Vendor"/></td>
<td><xsl:value-of select="Name"/></td>
<td><xsl:value-of select="Price"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
我们能够看出:一个XSL文件就如一个空的HTML文件,经由过程添补一个XML文件发生一个传统的HTML文件。
一个XSL文件起首必需有一个XML声明(即第一行),由于XSL实际上是一种特别的XML文件。XSL的根元素是xsl:stylesheet,即一个XSL文件必需以<xsl:stylesheet>标记最先,以</xsl:stylesheet>标记完毕,xmlns:xsl属性用于设定XSL的定名域。
XSL的根元素一般是由一个或多个榜样元素所构成,在此例中只包含单一榜样,它是由<xsl:template>标记最先,以<xsl:template>标记完毕,运用match属性能够在XML文件中拔取相符前提的节点,即设定榜样称号,关于最上层榜样,match设为“/”,代表全部XML文件的根元素。
然后是从XML文件中获得所需的数据,获得数据最简朴的要领是:
<xsl:value-of select="形式"/>
假如要获得多个元素,则要运用xsl:for-each元素,花样以下:
<xsl:for-each select="形式">
…..
</xsl:for-each>
接下来,我们要在flowers.xml文件中运用这个xsl文件,即在flowers.xml文件中的XML声明下面到场以下语句:
<?xml:stylesheet type="text/xsl" href="flowers.xsl"?>
完全的程序代码以下:
ex4_4_01.xml:运用XSL 显现XML文件
<?xml version="1.0" encoding="gb2312"?>
<?xml:stylesheet type="text/xsl" href="flowers.xsl"?>
<Flowers>
<Flower>
<Vendor>shop1</Vendor>
<Name>iris</Name>
<Price>$4.00</Price>
</Flower>
<Flower>
<Vendor>shop2</Vendor>
<Name>iris</Name>
<Price>$4.30</Price>
</Flower>
<Flower>
<Vendor>shop3</Vendor>
<Name>iris</Name>
<Price>$3.50</Price>
</Flower>
</Flowers>
更多XML文件构造和基础语法相干文章请关注ki4网!