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