曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
<LI><A HREF=”#Am”>Americium</A></LI>
<LI><A HREF=”#Sb”>Antimony</A></LI>
<LI><A HREF=”#Ar”>Argon</A></LI>
¼
在文檔的后面,出現真正的原子的描述,格式化后與下面的類似:
<H3><A NAME=”Al”>Aluminum</A></H3><P>
Aluminum
26.98154
13
3
2740
933.5
Al
2.7
</P>
無論何時自動生成超文本的目錄或索引,使用這類方法都是很普遍的。原子的NAME 在目錄中必須格式化成與文檔主體中不
同的格式。為此,需要在文檔的不同地方將兩個不同的規則應用于ATOM 元素。此解決辦法是把每個不同的規則給予mode
特性。然后設置xsl-apply-templates 元素的mode 特性來選擇準備應用的模板。
清單14-19:在兩個不同地方使用mode 來對相同數據進行不同的格式化的XSL 樣式單
XML 實用大全
第 517 頁
<?xml version=”1.0”?>
<xsl:stylesheet
xmlns:xsl=”http://www.w3.org/XSL/Transform/1.0”>
<xsl:template match=”/PERIODIC_TABLE”>
<HTML>
<HEAD><TITLE>The Elements</TITLE></HEAD>
<BODY>
<H2>Table of Contents</H2>
<UL>
<xsl:apply-templates select=”ATOM” mode=”toc”/>
</UL>
<H2>The Elements</H2>
<xsl:apply-templates select=”ATOM” mode=”full”/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match=”ATOM” mode=”toc”>
<LI><A>
<xsl:attribute name=”HREF”>#(xsl:value-of
select=”SYMBOL”/></xsl:attribute>
<xsl:value-of select=”NAME”/>
</A></LI>
</xsl:template>
<xsl:template match=”ATOM” mode=”full”>
XML 實用大全
第 518 頁
<H3><A>
<xsl:attribute name=”NAME”>
<xsl:value-of select=”SYMBOL”/>
</xsl:attribute>
<xsl:value-of select=”NAME”/>
</A></H3>
<P>
<xsl:value-of select=”.”/>
</P>
</xsl:template>
</xsl:stylesheet>
XML 實用大全
第 519 頁
14.15 使用xsl:variable 定義常數
命名的常數有助于代碼的整潔;可以用簡單的名稱和引用來代替常用的樣板文本;簡單地改變常數定義,就能很容易地調整
多處出現的樣板文本。
xsl:variable 元素定義命名的字符串,以便借助于特性值模板用于樣式單中的其他地方。xsl:variable 是一空元素,是
xsl:stylesheet 的直系子元素。它只有唯一的一個特性��name,此特性提供引用變量的名稱。xsl:variable 元素的
內容作為替換文本。例如,下面的xsl:variable 元素定義名為copy99 和值為Copyright 1999 Elliotte Rusty Harold 的
變量:
<xsl:variable name="copy99">
Copyright 1999 Elliotte Rusty Harold
</xsl:variable>
為了訪問此變量的值,可將美元符作為前綴加到此變量名前。要在特性中插入此符號,可使用特性值模板。例如:
<BLOCK COPYRIGHT="{$copy99}">
</BLOCK >
還可以使用xsl:value-of,將變量的替換文本以文本的形式插入到輸出文檔中:
<xsl:value-of select="$copy99"/>
xsl:variable 的內容可以含有包括其他XSL 指令的標記。這意味著可根據其他信息(包括其他變量的值)來計算變量的值。
但是,變量不能以直接或間接的方式遞歸地引用其自身。例如,下面的例子是錯誤的:
<xsl:variable name="GNU">
<xsl:value-of select="$GNU"/> s not Unix
</xsl:variable>
同樣,兩個變量不能像下面這樣循環地相互引用:
<xsl:variable name="Thingl">
Thingl loves <xsl:value-of select="$Thing2"/>
</xsl:variable>
<xsl:variable name="Thing2">
Thing2 loves <xsl:value-of select="$Thingl"/>
</xsl:variable>
XML 實用大全
第 520 頁
14.16 命名模板
變量只限于基本的文本和標記。XSL 提供了功能更強大的宏工具,可以封裝標準的標記和改變數據的文本。例如,假定要將
原子的原子序數、原子量和其他關鍵值分別作為表的單元格,以小型的、粗體的藍色Times 字體來格式化。換句話說,要獲
得類似于下面的輸入結果:
<td>
<font face="Times, serif" color="blue" size="2">
<b>52</b>
</font>
</td>
當然,還可以在模板規則中包含類似于下面的所有內容:
<xsl:template match="ATOMIC_NUMBER">
<td>
<font face="Times, serif" color="blue" size="2">
<b>
<xsl:value-of select="."/>
</b>
</font>
</td>
</xsl:template>
這些標記可作為其他模板,或作為其他規則中使用的模板的一部分而重復使用。當詳細的標記變得更為復雜時,當標記出現
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(146)