• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:24来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

XML 实用大全
第 106 页
这些指令出现两次是因为我们希望年份在输出结果中出现两次,一次在H1 主题中,一次在TITLE 中。这些指令每次出现都
执行同样的功能。<xsl:for-each select="SEASON">寻出全部SEASON 元素。<xsl:value-of select="@YEAR"/>插入SEASON
元素中的YEAR 属性值——这就是由<xsl:for-each select="SEASON">找到的字符串“1998”。
这非常重要,重述如下:xsl:for-each 选出源文档(例如清单5-1)中的某一特定的XML 元素,数据就从此元素中读取。
Xsl:value-of 把所选取元素的某一特定部分复制到输出文档中。因此,必须使用两个XSL 指令。使用任何一个都是无效的。
XSL 指令不同于输出的HTML 和H1 元素是因为这些指令都处于XSL 的命名域内。也就是说所有的XSL 元素名称都以xsl:开头。
命名域由样式单根元素中的xmlns:xsl 属性辨别。本书中的清单5-2,5-3 和所有其他示例中xmlns:xsl 属性的值都是
http://www.w3.org/tr/wd-xsl。
命名域将在第18 章中详细阐述。
5.4.4 联赛、分部和球队
下面通过添加一些XSL 指令取出前面出现过的两个LEAGUE 元素,并把这两个元素映射到H2 标题中,如清单5-4 所示。图
5-6 显示了使用该样式单后的文档。
清单5-4:一个带有提取LEAGUE 元素指令的XSL 样式单
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>
<xsl:for-each select="SEASON">
<xsl:value-of select="@YEAR"/>
</xsl:for-each>
Major League Baseball Statistics
</TITLE>
</HEAD>
<BODY>
<xsl:for-each select="SEASON">
XML 实用大全
第 107 页
<H1>
<xsl:value-of select="@YEAR"/>
Major League Baseball Statistics
</H1>
<xsl:for-each select="LEAGUE">
<H2 ALIGN="CENTER">
<xsl:value-of select="@NAME"/>
</H2>
</xsl:for-each>
</xsl:for-each>
<HR></HR>
Copyright 1999
<A HREF="http://www.macfaq.com/personal.html">
Elliotte Rusty Harold
</A>
<BR />
<A HREF="mailto:elharo@metalab.unc.edu">
elharo@metalab.unc.edu
</A>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
XML 实用大全
第 108 页
图5-6 当采用清单5-4 中的样式单之后,联赛名称显示为H2 标题样式
关键的新要素是嵌套的xsl:for-each 指令:
<xsl:for-each select="SEASON">
<H1>
<xsl:value-of select="@YEAR"/>
Major League Baseball Statistics
</H1>
<xsl:for-each select="LEAGUE">
<H2 ALIGN="CENTER">
<xsl:value-of select="@NAME"/>
</H2>
</xsl:for-each>
</xsl:for-each>
最外层的指令用于选取SEASON 元素,只有找到该元素才能找到它的YEAR 属性,并把它的值与另外的文本Major League
Baseball Statistics 一起放到<H1>与</H1>之间。下一步浏览器会循环选取SEASON 元素的每一个LEAGUE 子元素,并把它
的NAME 属性值放到<H2 ALIGN ="CENTER"> 与</H2>之间。尽管只有一个xsl:for-each 与LEAGUE 元素相配,但是它会对SEASON
元素内所有直接的LEAGUE 子元素进行循环。因此,该模板在没有联赛和联赛数目不定的情况下都能工作。
XML 实用大全
第 109 页
同样的技巧可以用于设计表示小组的H3 标题和表示各球队的H4 标题。清单5-5 演示了该程序,图5-7 显示了使用这一样式
单后的文档。各小组名称和各球队名称是从XML 数据中读取的。
清单5-5:一个带有提取DIVISION 和TEAM 元素指令的XSL 样式单
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<HEAD>
<TITLE>
<xsl:for-each select="SEASON">
<xsl:value-of select="@YEAR"/>
</xsl:for-each>
Major League Baseball Statistics
</TITLE>
</HEAD>
<BODY>
<xsl:for-each select="SEASON">
<H1>
<xsl:value-of select="@YEAR"/>
Major League Baseball Statistics
</H1>
<xsl:for-each select="LEAGUE">
<H2 ALIGN="CENTER">
<xsl:value-of select="@NAME"/>
</H2>
XML 实用大全
第 110 页
<xsl:for-each select="DIVISION">
<H3 ALIGN="CENTER">
<xsl:value-of select="@NAME"/>
</H3>
<xsl:for-each select="TEAM">
<H4 ALIGN="CENTER">
<xsl:value-of select="@CITY"/>
<xsl:value-of select="@NAME"/>
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(36)