曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
可能有任何判斷值。但是,大于1 的值則是不常見到的。
例如,下面的模板規則通過測試元素的位置是否等于1,來決定將此規則應用于周期表中第一個ATOM 元素,而不是后續元
素。
<xsl:template match="PERIODIC_TABLE/ATOM[position()=l]">
<xsl:value-of select="."/>
</xsl:template>
下面的模板規則通過測試元素的恢檬欠翊笥?,來將此規則應用于非PERIODIC_TABLE 第一個子元素的所有ATOM 元素:
<xsl:template match="PERIODIC_TABLE/ATOM[position()>1]">
<xsl:value-of select="."/>
</xsl:template>
關鍵字and 和or 根據正常的邏輯規則,將兩個布爾表達式進行邏輯組合。例如,假設要將模板應用于ATOMIC_NUMBER 元素,
它既不是其父元素的第一個子元素,也不是其父元素的最后一個子元素;也就是說,它就是父元素本身。下面的模板規則使
用and 來完成此項工作:
<xsl:template
match="ATOMIC_NUMBER[position()=l and position()=last()]">
<xsl:value of select="."/>
XML 實用大全
第 489 頁
</xsl:template>
下面的模板規則通過匹配位置是1 還是最后一個,應用于其父元素中的第一個和最后一個ATOM 元素:
<xsl:template match="ATOM[position()=l or positiono=last()]">
<xsl:value-of select="."/>
</xsl:template>
這是邏輯上的“或”,所以如果兩個條件都為真,它也將匹配。也就是說,它將既與其父元素的第一個子元素ATOM 元素進
行匹配,也與其父元素的最后一個子元素ATOM 元素進行匹配。
在XSL 中沒有not 關鍵字,但有not()函數。將操作放在not()括號中,可實現對操作的取反。例如,下面的模板規則選擇
除其父元素的第一個子元素外的所有ATOM 元素:
<xsl:template match="ATOM[not(position()=l)]">
<xsl:value-of select="."/>
</xsl:template>
下面的模板規則選擇除其父元素的第一個和最后一個ATOM 子元素外的所有ATOM 元素:
<xsl:template match =
"ATOM[not(position()=l or position()=last())]">
<xsl:value of select="."/>
</xsl:template>
不存在“異或”操作符。但巧妙地使用not()、and 和or 可以形成“異或”效果。例如,下面的規則要么選擇第一個子元素
的ATOM 元素,要么選擇最后一個子元素的ATOM 元素,但不會同時選擇第一個和最后一個子元素的ATOM 元素。
<xsl:template
match="ATOM[(position()=l or position()=last())
and not(position()=l and position()=last())]">
<xsl:value-of select="."/>
</xsl:template>
下列還有三個函數返回布爾值:
• true()總是返回true
XML 實用大全
第 490 頁
• false()總是返回false
• lang(code)如果當前節點的語言(由xml:lang 特性給出)與code 參數相同,則返回true
14.7.2.3 數值
XSL 的數值為64 位IEEE 雙精度浮點數。看起來像整數數值(如42 或-7000)也是以雙精度保存的。非數字值(如字符串和
布爾值)根據結果可轉化為數字,或使用下面的規則由數值函數將非數字值轉化為數字:
• 如果為true,布爾值為1;如果為false,則為0。
• 字符串去首尾空白;然后按要求轉化成數字;例如,字符串“12”轉化為數字12。如果字符串無法作為數字表示,
那么就轉換為0。
• 節點集合和結果片段轉換成字符串,然后將此字符串轉換成數字。
例如,下面的規則只輸出自然界不存在的反鈾(trans-uranium)元素以及原子序數大于92(鈾原子序數)的元素。于是,
ATOMIC_NUMBER 產生的節點集合被隱式地轉變成當前ATOMIC_NUMBER 節點的字符串值。
<xsl:template match="/PERIODIC_TABLE">
<HTML>
<HEAD><TITLE>The TransUranium Elements</TITLE></HEAD>
<BODY>
<xsl:apply-templates select="ATOM[ATOMIC_NUMBER>92]"/>
</BODY>
</HTML>
</xsl:template>
XSL 提供了四個標準的算術運算符:
• + 加法
• - 減法
• * 乘法
• div 除法(最通用的 / 在XSL 中已用于其他目的)
例如,<xsl:value-of select="2+2"/>將字符串“4”插入到輸出文檔中。這些運算更常用作測試。例如,下面的規則選擇
原子量大于原子序數兩倍的元素:
<xsl:template match="/PERIODIC_TABLE">
<HTML>
<BODY>
XML 實用大全
第 491 頁
<Hl>High Atomic Weight to Atomic Number Ratios</Hl>
<xsl:apply-templates
select="ATOM[ATOMIC_WEIGHT > 2 * ATOMIC_NUMBER]"/>
</BODY>
</HTML>
</xsl:template>
下面的模板實際上打印原子量與原子序數的比值:
<xsl:template match="ATOM">
<P>
<xsl:value-of select="NAME"/>
<xsl:value-of select="ATOMIC_WEIGHT div ATOMIC_NUMBER"/>
</P>
</xsl:template>
XSL 還提供兩個不常用的二進制運算符:
• mod:用于對兩個數求余
• quo:用于兩個數相除,然后截去小數部分,形成一個整數
XSL 還有對數字進行操作的四個函數:
floor()返回比此值小的最大整數
ceiling()返回比此值大的最小整數
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(138)