• 热门标签

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

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

为单独的特性:
<xsl:template match=”DENSITY”>
<BULK_PROPERTY
NAME=”DENSITY”
ATOM=”{../NAME}”
VALUE=”{.} {@UNITS}"
/>
</xsl:template>
可在一个XSL 样式单中将特性值模板用于许多特性的值中。这在xsl:element、xs1:attribute 和xsl:pi 元素中特别重要,
因为在这些元素中,特性值模板允许设计者决定在读取输入文档之前,在输出文档中准确地显示何种元素、特性或处理指令。
不能将特性值模板作为select 或match 特性的值、xmlns 特性、提供另一个XSL 指令元素名的特性或顶层元素(为
xsl:stylesheet 直系子元素)特性来使用。
第18 章“命名域”将讨论xmlns 特性。
14.9.2 使用xsl:element 将元素插入到输出文档中
通常,只使用文字元素本身就可以将元素插入到输出文档中。例如,要插入P 元素,只需要在样式单的适当位置键入<P>和
</P>。但是,偶尔也需要使用输入文档的详细内容,来确定将哪个元素放在输出文档中。例如,当将使用特性来提供信息的
源符号集变换成使用元素来提供相同信息的输出符号集时,就是这种情况。
xsl:element 元素将元素插入到输出文档中。元素名由xsl:element 元素的name 特性中的特性值模板给出。元素的内容来
自于xsl:element 元素的内容,此元素可能包括要插入这些项的xsl:attribute、xsl:pi 和xsl:comment 指令(下面讨论所
有的指令)。
例如,假设根据STATE 特性的值,要用GAS、LIQUID 和SOLID 元素来代替ATOM 元素。使用xsl:element 将STATE 特性值转
换为某个元素名,从而只需要一条规则就可以做到这一点。具体作法如下所示:
<xsl:template match=”ATOM”>
XML 实用大全
第 499 页
<xsl:element name=”{@STATE}”>
<NAME><xsl:value-of select=”NAME”/></NAME>
<!- rules for other children ->
</xsl:element>
</xsl:template>
使用更为复杂的特性值模板,就可以实现所需的大多数运算。
14.9.3 使用xsl:attribute 将特性插入到输出文档中
只使用文字特性,就可以将特性包括在输出文档中。例如,要插入带有ALIGN 特性(其值为CENTER)的DIV 元素,只需在
样式单的适当位置处键入<DIV ALIGN="CENTER">和</DIV>即可。但是,为了确定特性值,有时甚至是为了确定特性名,常常
不得不依赖于从输入文档中读取的数据。
例如,假设要获得一样式单,可选择原子名,并把这些原子名格式化为与H.html、He.html、Li.html 等等文件的链接:
<LI><A HREF="H.html">Hydrogen</A></LI>
<LI><A HREF="He.html">Helium</A></LI>
<LI><A HREF="Li.html">Lithium</A></LI>
在输入文档中,每个不同的元素都有一个不同的HREF 特性值。xsl:attribute 元素计算特性名和值,并将它插入到输出文
档中。每个xsl:attribute 元素要么是xs1:element 元素的子元素,要么是文字元素。在输出中,xsl:attribute 计算出来
的特性关联到与其父元素计算出来的元素上。特性名是由xsl:attribute 元素的name 特性指定的。特性值是由
xsl:attribute 元素的内容给出的。例如,下面的模板规则将产生上面显示的输出结果:
<xsl:template match="ATOM">
<LI><A>
<xsl:attribute name="HREF">
<xsl:value-of select="SYMBOL"/>.html
</xsl:attribute>
<xsl:value-of select="NAME"/>
</A></LI>
</xsl:template>
XML 实用大全
第 500 页
所有的xsl:attribute 元素都必须放在其父元素的任何其他内容之前。在已经开始写出元素内容之后,就不能将特性加到元
素中。例如,下面的模板是非法的:
<xsl:template match="ATOM">
<LI><A>
<xsl:value-of select="NAME"/>
<xsl:attribute name="HREF">
<xsl:value-of select="SYMBOL"/>.html
</xsl:attribute>
</A></LI>
</xsl:template>
14.9.4 定义特性集合
经常需要将同一组特性应用于许多不同的元素(既可是同类的,也可以是不同类的)。例如,将样式特性应用于HTML 表中
的每个单元格。要使这一操作更加简单,可使用xsl:attribute-set,在样式单的顶层定义一个或多个特性作为特性集合的
成员,然后使用xsl:use 将此特性集合包括在元素中。
例如,下面的xsl:attribute-set 元素定义一个名为cellstyle 的元素,其font-family 特性为New York、Times New Roman、
Times 和serif,其font-size 特性为12pt。
<xsl:attribute-set name=”cellstyle”>
<xsl:attribute name=”font-family”>
New York, Times New Roman, Times, serif
</xsl:attribute>
<xsl:attribute name=”font-size”>12pt</xsl:attribute>
</xsl:attribute-set>
然后,用下面的模板规则将这些特性应用于输出文档的td 元素。与xsl:attribute 一样,插入特性集合的xsl:use 元素也
必须放在作为td 子元素而加入的任何内容之前。
<xsl:template match=”ATOM”>
<tr>
<td>
XML 实用大全
第 501 页
<xsl:use attribute-set=”cellstyle”/>
<xsl:value-of select=”NAME”/>
</td>
<td>
<xsl:use attribute-set=眂ellstyle”/>
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(141)