今天我們學習xsl的各種運算子,滿足編寫更大靈活性的xsl樣式的要求。
表
一、運算子與特殊字元
運算子描述選擇子元素,返回左側元素的直接子元素;如果「/」位於最左側表示選擇根結點的直接子元素
// 遞迴下降,不論深度,搜尋指定的元素;如果位於最左側表示從根結點出發遞迴下降搜尋指定元素
表示當前元素
萬用字元,選擇任意元素,不考慮名字
取得屬性值,作為屬性名的字首
萬用字元,選擇任意屬性,不考慮名字
名字作用範圍分隔符,將名字作用範圍字首與元素或屬性名分隔開來
在相關節點上應用指定方法
分組,明確指定優先順序
應用過濾樣式
下標運算子,用於在集合中指示元素
表
二、邏輯運算子
比較運算子
可選方式
描述and
$and$或&&
邏輯與or
$or$或||
邏輯或not()
$not$
邏輯非表
三、關係運算子
=$eq$相等=
$ieq$
相等(不區分大小寫)
!=$ne$
不等$ine$
不等(不區分大小寫)
<
$lt$
小於$ilt$
小於(不區分大小寫)
< =
$le$
小於等於
$ile$
小於等於(不區分大小寫)
>
$gt$
大於$igt$
大於(不區分大小寫)
>=
$ge$
大於等於
$ige$
大於等於(不區分大小寫)
$all$
集合運算子,如果集合中所有專案均滿足條件則返回「真」
$any$
集合運算子,如果集合中任意專案滿足條件則返回「真」
|集合運算子,返回兩個集合的聯合
示例一:
從個人簡歷中尋找具有具有「web開發」技能的人的姓名與e-mail。假設文件結構如下所示:
< document >
< resume >
< name >name< /name >
< *** >***< /*** >
< birthday >birthday< /birthday >
< skill >skill1< /skill >
< skill >skill2< /skill2 >
…
< skill >skilln
< /skill >
< /resume >
< resume >
…
< /resume >
…
< /document >
為從以上結構的個人簡歷中尋找出所有具有「web開發」技能的人的姓名與e-mail的xsl文件結構如下:
< table border="1" cellspacing="0" >
< th >姓名< /th >< th >e-mail< /th >
< xsl:for-each select="resume [ $any$ skill='web開發' ]" >
< tr >< td >< xsl:value-of select="name"/ >< /td >
< td >< xsl:value-of select="e-mail"/ >< /td >
< /tr >
< /xsl:for-each >
< /table >
說明:1.[ ] ───表示選擇條件,只有滿足條件的個人簡歷才被顯示;
2.$any$ ──由於每個人有多種技能,故加$any$作為字首,以使每個人所有技能都能被比較;
3.skill='web開發' ──篩選條件
示例二、
仍上面的xml文件為例,如果欲選擇1977/1/1之前出生的人的姓名、技能與e-mail,相應的xsl文件結構如下(假定生日格式為yyyy/mm/dd):
< table border="1" cellspacing="0" >
< th >姓名< /th >< th >技能< /th >< th >e-mail< /th >
< xsl:for-each select="resume [ birthday $lt$ '1977/1/1' ]" >
< tr >
< td >< xsl:value-of select="name"/ >< /td >
< td >< xsl:value-of select="skill [0]"/ >
< xsl:for-each select="skill [index() >0]" >、
< xsl:value-of select="."/ >
< /xsl:for-each >
< /td >
< td >< xsl:value-of select="e-mail"/ >< /td >
< /tr >
< /xsl:for-each >
< /table >
說明:1.birthday $lt$ '1977/1/1' ──搜尋條件,在此處使用「< 」會錯誤,故使用「$lt$」表示小於。
2.skill [0] ───表示選擇skill的第一項
3.skill [index() >0]───表示選擇skill的第二項以後(包括第二項)的專案
4.xsl:value-of select="." ───表示選擇當前標記的值
跟我學XSL(六)
運算子 關係與邏輯運算子,特殊字元等 今天我們學習xsl的各種運算子,滿足編寫更大靈活性的xsl樣式的要求。表一 運算子與特殊字元 運算子 描述 選擇子元素,返回左側元素的直接子元素 如果 位於最左側表示選擇根結點的直接子元素 遞迴下降,不論深度,搜尋指定的元素 如果位於最左側表示從根結點出發遞迴下...
跟我學XSL 六
這課學習xsl的函式 一 end 含義 返回集合中最後乙個元素。示例 輸出最後乙份簡歷 假定xml檔案格式為 resume resume resume resume 相應xsl檔案內容為 xsl for each select resume end xsl for each 或 xsl templa...
跟我學XSL(三)
經過前幾日的學習,我們學習了xhtml文件的編寫和以及三個xsl元素,已能編寫相當靈活的xsl文件,今天將學習的是xsl模板的編寫。我們都知道,短的文件 程式十分好讀,但當規模增大後,其複雜性也以更快的速度增加。前面我們學了 xsl for each xsl value of 等,可以用它們對xml...