XSL學習筆記4 XSLT模式匹配的語法

2021-08-30 11:51:10 字數 1456 閱讀 6150

xsl學習筆記4 xslt模式匹配的語法

模板規則通過使用模式來匹配文件樹的節點。模式指定一組條件,用於選擇要處理的節點。

下面列出常用的模式匹配的用法:

1、匹配根節點

例如:,表示匹配根節點。

2、匹配元素節點

例如:,表示匹配employees元素節點。

3、使用萬用字元

例如:,表示匹配任何元素。

4、使用@匹配屬性

用@加上數姓名,可以用於匹配屬性節點。

還可以將@與星號(*)一起使用,例如:,表示匹配任意的屬性節點。

5、使用斜槓(/)匹配子節點

例如:,表示匹配employees元素節點下的任意的employee子節點。

6、使用雙斜槓(//)匹配後代節點

有時候,希望對某一類元素節點進行處理,而不管該節點在樹狀結構中所處的位置,就可以使用雙斜槓(//)來匹配節點。例如:,表示匹配根節點下任意的name元素節點,而不管該節點所處的位置。例如:,表示匹配employees元素節點下的任意的name元素節點。

7、使用或操作符(|)

使用或操作符(|)來可選擇地匹配多個節點。例如:,表示匹配任意的name或age元素節點。

例如:employee/name!monthly_pay/@mode

">,表示匹配employee元素節點下的任意name子節點,或monthly_pay元素節點的mode屬性節點。

8、使用操作符

可以在中指定布林表示式,用於在節點集中更精確地匹配某乙個節點。

例如:如果只想匹配第乙個employee元素,可以這樣寫:,表示匹配第乙個employee子元素節點。這和上面的寫法是等價的:

position()是乙個函式呼叫,返回節點在上下文中的當前位置,然後判斷該位置是否等於1.

9、使用node()匹配節點

node()表示匹配除屬性節點和根節點之外的其他任何節點。

例如:.

10、使用text()匹配文字節點

text()表示匹配任意的文字節點,例如:。

11、使用processing-instruction()匹配處理指令

processing-instruction()表示匹配任的處理指令節點。

例如:。processing-instruction()還可以帶乙個引數,用於指定處理指令目標的名字,這樣,只有和這個名字相同的處理指令才能被匹配。

12、使用comment()匹配注釋

comment()表示匹配任意的注釋節點,例如:。

13、使用id()進行匹配

乙個id型別的屬性唯一標識了xml文件中的乙個元素。

例如:表示匹配擁有id型別屬性並且其值等於e-2001320001的元素。要注意的是,要讓這種方式能夠工作,必須在源xml文件的dtd中宣告id型別的屬性,可以是內部的或外部的dtd,如果源文件那個沒有dtd,則id()函式就不能正常工作。

XSL學習筆記4 XSLT模式匹配的語法

模板規則通過使用模式來匹配文件樹的節點。模式指定一組條件,用於選擇要處理的節點。下面列出常用的模式匹配的用法 1 匹配根節點 例如 表示匹配根節點。2 匹配元素節點 例如 表示匹配employees元素節點。3 使用萬用字元 例如 表示匹配任何元素。4 使用 匹配屬性 用 加上數姓名,可以用於匹配屬...

XSL學習筆記6 XSLT內建模板規則

xsl學習筆記6 xslt內建模板規則 定義正確的模板規則來匹配xml樹中的節點是xslt應用的關鍵。為了讓源文件樹的節點在沒有明確匹配規則的情況下,能夠被遞迴處理,xslt定義了幾個內建的模板規則,可以將其看作是xsl式樣表文件的預設模板規則。內建模板規則就好像是在式樣表之前被隱含地匯入的一樣,與...

Less學習筆記5 匹配模式

比如 用css去畫乙個三角 這個時候在頁面上會出現乙個朝下的紅色三角形,如果想讓三角形朝上修改 中的 border color transparent transparent red transparent 但是在ie中,此時的小三角會出現乙個黑色的小背景 此時的處理 根據三角的方向,對border...