曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
為單獨的特性:
<xsl:template match=”DENSITY”>
<BULK_PROPERTY
NAME=”DENSITY”
ATOM=”{../NAME}”
VALUE=”{.} {@UNITS}"
/>
</xsl:template>
可在一個XSL 樣式單中將特性值模板用于許多特性的值中。這在xsl:element、xs1:attribute 和xsl:pi 元素中特別重要,
因為在這些元素中,特性值模板允許設(shè)計者決定在讀取輸入文檔之前,在輸出文檔中準(zhǔn)確地顯示何種元素、特性或處理指令。
不能將特性值模板作為select 或match 特性的值、xmlns 特性、提供另一個XSL 指令元素名的特性或頂層元素(為
xsl:stylesheet 直系子元素)特性來使用。
第18 章“命名域”將討論xmlns 特性。
14.9.2 使用xsl:element 將元素插入到輸出文檔中
通常,只使用文字元素本身就可以將元素插入到輸出文檔中。例如,要插入P 元素,只需要在樣式單的適當(dāng)位置鍵入<P>和
</P>。但是,偶爾也需要使用輸入文檔的詳細(xì)內(nèi)容,來確定將哪個元素放在輸出文檔中。例如,當(dāng)將使用特性來提供信息的
源符號集變換成使用元素來提供相同信息的輸出符號集時,就是這種情況。
xsl:element 元素將元素插入到輸出文檔中。元素名由xsl:element 元素的name 特性中的特性值模板給出。元素的內(nèi)容來
自于xsl:element 元素的內(nèi)容,此元素可能包括要插入這些項的xsl:attribute、xsl:pi 和xsl:comment 指令(下面討論所
有的指令)。
例如,假設(shè)根據(jù)STATE 特性的值,要用GAS、LIQUID 和SOLID 元素來代替ATOM 元素。使用xsl:element 將STATE 特性值轉(zhuǎn)
換為某個元素名,從而只需要一條規(guī)則就可以做到這一點。具體作法如下所示:
<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>
使用更為復(fù)雜的特性值模板,就可以實現(xiàn)所需的大多數(shù)運算。
14.9.3 使用xsl:attribute 將特性插入到輸出文檔中
只使用文字特性,就可以將特性包括在輸出文檔中。例如,要插入帶有ALIGN 特性(其值為CENTER)的DIV 元素,只需在
樣式單的適當(dāng)位置處鍵入<DIV ALIGN="CENTER">和</DIV>即可。但是,為了確定特性值,有時甚至是為了確定特性名,常常
不得不依賴于從輸入文檔中讀取的數(shù)據(jù)。
例如,假設(shè)要獲得一樣式單,可選擇原子名,并把這些原子名格式化為與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 計算出來
的特性關(guān)聯(lián)到與其父元素計算出來的元素上。特性名是由xsl:attribute 元素的name 特性指定的。特性值是由
xsl:attribute 元素的內(nèi)容給出的。例如,下面的模板規(guī)則將產(chǎn)生上面顯示的輸出結(jié)果:
<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 元素都必須放在其父元素的任何其他內(nèi)容之前。在已經(jīng)開始寫出元素內(nèi)容之后,就不能將特性加到元
素中。例如,下面的模板是非法的:
<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 定義特性集合
經(jīng)常需要將同一組特性應(yīng)用于許多不同的元素(既可是同類的,也可以是不同類的)。例如,將樣式特性應(yīng)用于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>
然后,用下面的模板規(guī)則將這些特性應(yīng)用于輸出文檔的td 元素。與xsl:attribute 一樣,插入特性集合的xsl:use 元素也
必須放在作為td 子元素而加入的任何內(nèi)容之前。
<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”/>
中國航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(141)