曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
round()將數(shù)值四舍五入成最接近的整數(shù)
sum()返回其參數(shù)的和
例如下面的模板規(guī)則將原子量(各同位素在自然界分布的中子數(shù)與質(zhì)子數(shù)之和的加權(quán)平均數(shù))減去原子序數(shù)(質(zhì)子數(shù)),計
算出原子中的中子數(shù),并四舍五入成最接近的整數(shù):
<xsl:template match="ATOM">
<P>
XML 實用大全
第 492 頁
<xsl:value-of select="NAME"/>
<xsl:value-of
select="round(ATOMIC_WEIGHT – ATOMIC_NUMBER)"/>
</P>
</xsl:template>
下面的規(guī)則將所有的原子量相加,然后除以原子的個數(shù),從而計算出表中所有原子的平均原子量:
<xsl:template match="/PERIODIC_TABLE">
<HTML>
<BODY>
<H1>Average Atomic Weight</H1>
<xsl:value-of
select="sum(from-descendants(ATOMIC_WEIGHT))
div count(from-descendants(ATOMIC_WEIGHT))"/>
</BODY>
</HTML>
</xsl:template>
14.7.2.4 字符串
字符串是Unicode 字符序列。按照下面的準(zhǔn)則,使用string()函數(shù),就可以將其他數(shù)據(jù)類型轉(zhuǎn)換成字符串類型:
• 節(jié)點集合轉(zhuǎn)換的結(jié)果是將集合中的節(jié)點值連接在一起。根據(jù)表14-1 所給出的規(guī)則,由xsl:value-of 元素計算出集
合中的節(jié)點值。
• 結(jié)果樹形片段(result tree fragment)在轉(zhuǎn)換時,很像是一個元素,并取此假想的元素值。而此假想的元素值是根
據(jù)表14-1 所給出的規(guī)則,由xsl:value-of 元素計算出的。
• 數(shù)字轉(zhuǎn)換成歐洲風(fēng)格的數(shù)字字符串,如“-12”或“3.1415292”。
• 布爾值的false 轉(zhuǎn)換成英語單詞的“false”;布爾值的true 轉(zhuǎn)換成英語單詞的“ true”。
除了string( )之外,XSL 還有七個對字符進(jìn)行操作的函數(shù)。現(xiàn)總結(jié)于表14-5 中。
表14-5 對字符串進(jìn)行操作的函數(shù)
XML 實用大全
第 493 頁
函數(shù) 返回值類型 返回值
starts-with(main_string, prefix_string) 布爾
如果main_string 以prefix_string 開始,則為true;
否則為false
Contains(containing_string,
contained_string)
布爾
如果contained_string 參數(shù)是containing_string
參數(shù)的一部分,則為true;否則為false
Substring-before(string, marker-string) 字符串
從string 的第一個字符直到第一次出現(xiàn)
marker-string 止(但不包括)的部分
Substring-after(string, marker-string) 字符串
從第一次出現(xiàn)marker-string 之后到string 最后一
個字符為止的部分
Normalize(string) 字符串
截去string 首尾空白后的部分,并且一連串的空白
以一個空格代替;如果忽略string 參數(shù),則將上下
文節(jié)點的字符串值變成為正常字符串
Translate(string, replaced_text,
replacement_text)
字符串
返回string 中由replacement_text 中的相應(yīng)字符來
代替replaced_text 中的字符后的結(jié)果
concat(string1, string2, ) 字符串
將以參數(shù)形式傳遞的所有字符串連接起來,并返回這
種連接后的字符串,其順序為傳遞時的順序
format-number(number, format-string,
locale-string)
字符串
返回number 參數(shù)格式化后的字符串形式。格式化是
按照由locale-string 參數(shù)指定的位置中的
format-string 參數(shù)所指定的格式進(jìn)行的。其工作方
式就好像由Java 1.1 中的java.text.DecimalFormat
類所進(jìn)行的格式化一樣(請參考
http://java.sun.com/
products/jdk/1.1/docs/api/java.text.
DecimalFormat.html)
14.7.2.5 結(jié)果樹形片段
結(jié)果樹形片段是XML 文檔的一部分,而不是一個完整的節(jié)點或節(jié)點集合。例如,使用帶有指向元素中間的URI 的doc()函數(shù),
其結(jié)果可能產(chǎn)生一結(jié)果樹形片段。有些擴展函數(shù)(專門用于特定的XSL 實現(xiàn)或安裝的函數(shù))也可以返回結(jié)果樹形片段。
由于結(jié)果樹形片段不是結(jié)構(gòu)整潔的XML,所以不能用它們來做什么事。實際上,唯一允許的操作是分別使用string()和
boolean()函數(shù),來將它們轉(zhuǎn)換成字符串值或布爾值。
XML 實用大全
第 494 頁
14.8 缺省的模板規(guī)則
在XSL 樣式單中,十分小心地映射XML 文檔的層次,是很困難的。如果文檔不按照固定的、可預(yù)料的順序(如周期表)排列,
而是正像許多Web 網(wǎng)頁那樣隨意地將元素放在一起,這種情況就很難映射XML 文檔的層次。在這些情況下,應(yīng)有通用的規(guī)則,
來查找元素并將模板應(yīng)用于此元素,而不必考慮此元素究竟出現(xiàn)在源文檔的何處。
為了使此過程更容易,XSL 定義兩個缺省的模板規(guī)則,在所有的樣式單中都隱性地包括這兩個規(guī)則。第一個缺省規(guī)則將模板
應(yīng)用于所有元素的子元素,以遞歸的形式,降序排列元素的結(jié)構(gòu)樹。這種方式可確保應(yīng)用于元素的所有模板規(guī)則都能夠被說
明。第二個缺省規(guī)則應(yīng)用于下一個節(jié)點,將這些節(jié)點的值復(fù)制到輸出流中。這兩個規(guī)則共同使用,表示即使是沒有任何元素
的空XSL 樣式單,仍將產(chǎn)生把輸入的XML 文檔的原始字符數(shù)據(jù)作為輸出內(nèi)容的結(jié)果。
14.8.1 元素的缺省規(guī)則
第一個缺省規(guī)則應(yīng)用于任何類型的元素節(jié)點或根節(jié)點:
<xsl:template match="*|/">
<xsl:apply-templates/>
</xsl:template>
*|/ 是“任何元素的節(jié)點或根節(jié)點”的縮寫形式。本規(guī)則的目的,就是要確保所有的元素即使沒有受到隱性規(guī)則的影響,也
都按遞歸的方式處理。也就是說,除非其他的規(guī)則覆蓋了本規(guī)則(特別是對根元素就是如此),否則所有的元素節(jié)點都要處
理。
但是,一旦存在任何父元素的隱性規(guī)則,那么對于子元素,除非父元素的模板規(guī)則有xsl:apply-templates 子元素,否則本
中國航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(139)