曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
<xsl:template match=”ATOM”>
<xsl:apply-templates
select=”MELTING_POINT”/>
</xsl:template>
<xsl:template match=”MELTING_POINT”>
<xsl:copy-of select=”..”>
<xsl:apply-templates select=”*|@*|pi()|text()”/>
</xsl:copy-of>
</xsl:template>
<xsl:template match=”* | @* | pi() | text()”>
<xsl:copy>
<xsl:apply-templates select=”* | @* | pi() | text()”/>
XML 實(shí)用大全
第 505 頁(yè)
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
這是一個(gè)從源符號(hào)集到同一個(gè)符號(hào)集的XSL 轉(zhuǎn)換的例子。不像本章中的大多數(shù)例子那樣,此例不轉(zhuǎn)換成結(jié)構(gòu)整潔的HTML。
XML 實(shí)用大全
第 506 頁(yè)
14.11 使用xsl:number 為節(jié)點(diǎn)計(jì)數(shù)
xsl:number 在輸出文檔中插入格式化整數(shù)。由expr 特性計(jì)算出來(lái)的數(shù)值,通過(guò)四舍五入成最接近的整數(shù),然后根據(jù)format
特性值,對(duì)此整數(shù)進(jìn)行格式化,從而獲得整數(shù)值。為這兩個(gè)特性提供了恰當(dāng)?shù)娜笔≈怠@纾疾榍鍐?4-17 中的ATOM 元
素的樣式單。
清單14-17:為原子計(jì)數(shù)的XSL 樣式單
<?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>
<table>
<xsl:apply-templates select="ATOM"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="ATOM">
<tr>
<td><xsl:number expr="position()"/></td>
<td><xsl:value-of select="NAME"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
XML 實(shí)用大全
第 507 頁(yè)
當(dāng)此樣式單應(yīng)用于清單14-1 時(shí),輸出類似如下顯示:
<html><head><title>The
Elements</title></head><body><table><tr><td>l</td><td>Hydrogen<
/td></tr>
<tr><td>2</td><td>Helium</td></tr>
</table></body></html>
由于氫是其父元素的第一個(gè)ATOM 元素,所以其號(hào)碼為1。由于氦是其父元素的第二個(gè)ATOM 元素,所以其號(hào)碼為2。(這些
號(hào)碼對(duì)應(yīng)于氫和氦的原子序數(shù),這種對(duì)應(yīng)關(guān)系是清單14-1 的副產(chǎn)品,而清單14-1 正是以原子序數(shù)的順序進(jìn)行排列的。)
14.11.1 缺省數(shù)值
如果使用expr 特性來(lái)計(jì)算編號(hào),那么這就是所需要的值。但是,如果省略expr 特性,那么源樹形結(jié)構(gòu)中的當(dāng)前節(jié)點(diǎn)位置就
作為編號(hào)來(lái)使用。但是,可使用下面三個(gè)特性來(lái)調(diào)整此缺省值:
• level
• count
• from
這三個(gè)特性是從以前的不支持較為復(fù)雜的表達(dá)式XSL 草案中延續(xù)下來(lái)的。如果它們完全使你混淆,那么我建議不要
去考慮它們,使用expr 來(lái)代替。
14.11.1.1 level 特性
按缺省行為,當(dāng)不存在expr 特性時(shí),xsl:number 可對(duì)源節(jié)點(diǎn)的同屬節(jié)點(diǎn)加以計(jì)數(shù)。例如,如果對(duì)ATOMIC_NUMBER 元素而不
是ATOM 元素加以編號(hào),那么由于一個(gè)ATOM 元素絕不會(huì)有多個(gè)ATOMIC_NUMBER 子元素,所以任何一個(gè)編號(hào)都不會(huì)大于1。盡
管文檔包含多個(gè)ATOMIC_NUMBER 元素,但它們不是同屬的。
將xsl:number 的level 特性設(shè)置成any,可對(duì)與文檔中當(dāng)前節(jié)點(diǎn)同類的所有元素加以計(jì)數(shù)。此情況不僅包括與當(dāng)前規(guī)則相
匹配的元素,還包括類型與要求相一致的所有元素。例如,即使只選擇氣體的原子序數(shù),固體和液體也仍然計(jì)數(shù)在內(nèi)(即便
固體和液體沒(méi)有輸出也是如此)。看看下面的這些規(guī)則:
<xsl:template match="ATOM">
<xsl:apply-templates select="NAME"/>
</xsl:template>
<xsl:template match="NAME">
XML 實(shí)用大全
第 508 頁(yè)
<td><xsl:number level="any"/></td>
<td><xsl:value-of select="."/></td>
</xsl:template>
由于level 設(shè)置成any,上面的規(guī)則對(duì)每個(gè)新的NAME 元素產(chǎn)生的輸出不是從1 開始,其輸出結(jié)果如下:
<td>l</td><td>Hydrogen</td>
<td>2</td><td>Helium</td>
如果刪除level 特性或設(shè)置成缺省的single 值,那么輸出結(jié)果如下:
<td>l</td><td>Hydrogen</td>
<td>l</td><td>Helium</td>
另一個(gè)不大有用的方法將xsl:number 的level 特性設(shè)置成multi,以便對(duì)當(dāng)前節(jié)點(diǎn)的同屬及其祖先(但不是當(dāng)前節(jié)點(diǎn)同屬
的子節(jié)點(diǎn))加以計(jì)數(shù)。
14.11.1.2 count 特性
按缺省行為,當(dāng)沒(méi)有expr 特性時(shí),只對(duì)與當(dāng)前節(jié)點(diǎn)元素同類的元素加以計(jì)數(shù)。但可以將xsl-number 的count 特性設(shè)置成選
擇表達(dá)式,從而指定對(duì)什么元素加以計(jì)數(shù)。例如,下面的規(guī)則對(duì)ATOM 的所有子元素進(jìn)行編號(hào):
<xsl:template match="ATOM/*">
<td><xsl:number count="*"/></td>
<td><xsl:value-of select="."/></td>
</xsl:template>
應(yīng)用此規(guī)則獲得的輸出結(jié)果如下:
<td>l</td><td>Helium</td>
<td>2</td><td>He</td>
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實(shí)用大全(143)