曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
具有缺省值。(這種情況聽(tīng)起來(lái)有點(diǎn)復(fù)雜,但實(shí)際上很簡(jiǎn)單。所有的一切都說(shuō)明,可忽略只含有空白的文本節(jié)點(diǎn),除非這些
文本節(jié)點(diǎn)明確地設(shè)置成有意義的空白。對(duì)于其他情況,空白被保留。)
如果文檔中的任何元素都不保留空白,那么可設(shè)置xsl:stylesheet 元素的default-space 特性為strip,所有的首尾空白
在從文本的節(jié)點(diǎn)中刪除之后,才輸出這些節(jié)點(diǎn)文本。對(duì)于周期表來(lái)說(shuō),這最容易實(shí)現(xiàn)。例如:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"
default-space="strip">
如果想保留所有元素中的空白,可使用xsl:strip-space 元素,用它識(shí)別輸入文檔中指定的元素,如果指定的元素表明文檔
中的空白毫無(wú)意義,就不將此空白復(fù)制到輸出文檔中。element 特性識(shí)別要截去過(guò)剩空白的元素。例如,下面的這些規(guī)則加
到周期表樣式單中,可避免過(guò)多的空白:
<xsl:strip-space element="DENSITY"/>
<xsl:strip-space element="BOILING_POINT"/>
<xsl:strip-space element="MELTING_POINT"/>
xsl:preserve-space 元素與xsl:strip-space 元素相反。其element 特性命名的元素表示其空白應(yīng)保留。例如:
<xsl:preserve-space element="ATOM"/>
XML 實(shí)用大全
第 525 頁(yè)
樣式單內(nèi)部的空白(正好與輸出XML 文檔中的空白相反)是毫無(wú)意義的,在缺省情況下簡(jiǎn)化為一個(gè)空格。這種情況是可以避
免的:只需將文字空白放在xsl:text 元素之間。例如:
<xsl:template select="ATOM">
<xsl:text> This is indented exactly five spaces. </xsl:text>
</xsl:template>
處理空白的一個(gè)一勞永逸的方法就是將indent-result 特性與根xsl:stylesheet 元素相關(guān)聯(lián)。如果此特性的值為yes,那
么就允許處理程序?qū)⒍嘤嗟目瞻撞迦氲剑ǘ皇莿h除)輸出文檔中,以便使輸出文檔看起來(lái)好看一些。這包括縮排和行分隔
符。例如:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=http://www.w3.org/XSL/Transform/1.0
indent result="yes">
<!- usual templates and such go here... ->
</xsl:stylesheet>
如果生成的是HTML,指定indent-result="yes"就可使輸出的文檔更具可讀性。indent-result 的缺省值為no,這是由于其
他非HTML 的輸出格式都可能將空白認(rèn)為是有意義的。
XML 實(shí)用大全
第 526 頁(yè)
14.18 選擇
XSL 提供了根據(jù)輸入文檔來(lái)改變輸出內(nèi)容的兩個(gè)元素。xsl:if 元素根據(jù)輸入文檔中存在的模式,決定是否輸出給定的XML
段。xsl:choose 元素根據(jù)輸入文檔中存在的模式,從幾個(gè)可能的XML 段中挑選一個(gè)。使用xsl:if 和xsl:choose 來(lái)完成的
大部分任務(wù)也需要通過(guò)應(yīng)用適當(dāng)?shù)哪0鍋?lái)實(shí)現(xiàn)。但有時(shí),使用xsl:if 或xsl:choose 來(lái)解決問(wèn)題會(huì)更簡(jiǎn)單、更有效。
14.18.1 xsl:if
xsl:if 元素提供了根據(jù)模式來(lái)改變輸出文檔的簡(jiǎn)單途徑。xsl:if 的test 特性含有選擇表達(dá)式,用來(lái)計(jì)算布爾值。如果此表
達(dá)式為true,即輸出xsl:if 元素的內(nèi)容;否則,不輸出xsl:if 元素的內(nèi)容。例如下面的模板取消所有ATOM 元素的名稱。
除列表中的最后一個(gè)元素外,在所有的元素后加入一個(gè)逗號(hào)和一個(gè)空格。
<xsl:template match="ATOM">
<xsl:value-of select="NAME"/>
<xsl:if test="not(position()=last())">, </xsl:if>
</xsl:template>
本模板確保列表類似于“Hydrogen, Helium”樣子,而不是“Hydrogen, Helium, ”的樣子。
不存在xsl:else 或xsl:else-if 元素。xsl:choose 元素提供了這一功能。
14.18.2 xsl:choose
根據(jù)幾個(gè)可能的條件,xsl:choose 元素從幾個(gè)的輸出結(jié)果中選擇一個(gè)。xsl:when 子元素提供各種條件及其相關(guān)的輸出模板。
xsl:when 元素test 特性為布爾值的選擇表達(dá)式。如果多個(gè)條件都為真,那么只顯示第一個(gè)為真的條件。如果xsl:when 元
素都不為真,那么顯示xsl:otherwise 子元素的內(nèi)容。例如,下面的規(guī)則根據(jù)ATOM 元素的STATE 特性是為SOLID、LIQUID
還是GAS,來(lái)改變輸出文檔的顏色:
<xsl:template match=”ATOM”>
<xsl:choose>
<xsl:when test=”@STATE=’SOLID’ “>
<P style=”color:black”>
<xsl:value-of select=”.”/>
</P>
</xsl:when>
<xsl:when test=”@STATE=’LIQUID”’>
<P style=”color:blue”>
XML 實(shí)用大全
第 527 頁(yè)
<xsl:value-of select=”.”/>
</P>
</xsl:when>
<xsl:when test=”@STATE=’GAS”’>
<P style=”color:red”>
<xsl:value-of select=”.”/>
</P>
</xsl:when>
<xsl:other>
<P style=”color:green”>
<xsl:value-of select=”.”/>
</P>
</xsl:other>
</xsl:choose>
</xsl:template>
XML 實(shí)用大全
第 528 頁(yè)
14.19 合并多個(gè)樣式單
單一XML 文檔可以使用在許多不同的DTD 中描述的許多不同的標(biāo)記符號(hào)集。有時(shí)希望將不同的標(biāo)準(zhǔn)樣式單用于那些不同的符
號(hào)集。但是,也可能還要將樣式規(guī)則用于特定的文檔。xsl:import 和xsl:include 元素可用來(lái)合并多個(gè)樣式單,以便組織
和重新將樣式單用于不同的符號(hào)集和目的。
14.19.1 使用xsl:import 進(jìn)行錄入
xsl:import 元素為頂級(jí)元素,其href 特性提供導(dǎo)入的樣式單的URI。所有的xsl:import 元素都必須放在xsl:stylesheet
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實(shí)用大全(148)