XSL 學習筆記 基礎篇

2021-08-22 01:51:08 字數 1739 閱讀 8410

xsl 之於 xml 就像 css 之於 html。它是指可擴充套件樣式表語言 (extensible stylesheet language)。這是一種用於以可讀格式呈現 xml 資料的語言。xsl 實際上包含兩個部分:

xslt 是指 xsl 轉換 (xsl transformation),它是 xsl 最重要的部分。

xslt 可以將 xml 文件轉換為其它 xml 文件、xhtml 輸出或簡單的文字。這通常是通過將每個 xml 元素轉換為 html 元素來完成的。由於 xml 標籤是使用者定義的,瀏覽器不知道如何解釋或呈現每個標籤,因此必須使用 xsl。xml 標籤的意義是為了方便使用者(而不是計算機)理解。

xslt 還可以對 xml 樹進行下列操作:

xsl 是否與 xml 相同?

既是又不是。說是,是因為它們遵循相同的語法規則(只有少許差異,下面我將會講到)。說不是,是因為它們的用途不同:xml 用於承載資料,而 xsl 則用於設定資料的格式。xsl 宣告與 xml 宣告的不同之處在於,xml 宣告只寫一行,而且沒有結束標籤,而 xsl 宣告必須包含結束標籤。

在什麼情況下應該使用 xsl?

xsl 在設計時有幾個目標用途,這些用途使它成為某些開發情況下的完美解決方案,而對另一些開發情況則毫無用處。

伺服器端與客戶端

伺服器端轉換工作流程如下圖所示:

客戶端 xsl 轉換的工作流程:

xsl 使用 xpath 來標識 xml 樹中需要處理的各個元素。

xpath 規範基本上遵循與檔案系統定址相同的規則:

過濾專案

使用構造,您還可以根據條件過濾輸出。假設您只想顯示雇員中的程式設計師。

jobsalary

要定義 xml 節點的條件,可以使用下列任何運算子:

對專案進行排序

可以將專案按字母順序排列。只需使用構造,並指定按哪個節點進行排序。元素必須巢狀在元素中,以確保應用程式可以迴圈通過所有的專案。使用下面的**可以按字母順序顯示員工:

jobsalary

當然,您只需在元素中額外新增乙個屬性,即可方便地在公升序和降序排列順序之間切換:

單一條件和多個條件

在大多數語言中,xsl 還能夠根據條件顯示內容。

單一條件是使用下面的語法定義的:

要對多個專案執行條件測試,以便只顯示滿足該條件的專案,需要將xsl:if構造巢狀在xsl:for-each元素中。下面的示例顯示了如何只列出薪金高於 2700 元的員工:

jobsalary

2700">

請注意,小於 () 符號由它們相應的 html 轉義序列(< 和 >)代替。否則,它們很容易與標籤的開頭和結尾混淆。   

在測試表示式中可以使用常用的條件運算子:

如果需要將某個值與某個字串進行比較,則要將字串放在單引號中(例如)。

象大多數程式語言中的 if-else 構造一樣,您還可以定義更複雜的條件。所使用的語法一看就能明白:

為了在多個 xml 節點上測試條件,構造必須巢狀在迴圈中。

假設您要以綠色高亮顯示薪金低於 2700 元的所有員工,以藍色高亮顯示薪金高於 2700 元的所有員工:

jobsalary

2700">

元素指定的是當 xml 節點不滿足初始測試條件時預設應用的規則。

xsl基礎學習 模板

在這裡不在多說,具體看例子就知道了 用了兩種模板形式 通過兩個例子就可以對比不同,用瀏覽器瀏覽xml檔案即可.例子1 grade.xml檔案 lisi1 chinese 60 ssdfsd 6367 lisi2 chinese 70 ssdfsd 5789 lisi3 chinese 77 ssdf...

oracle學習筆記(基礎篇)

關係 表 欄位列 記錄行 檔案表e r圖 一對一直線 一對多爪子 可選虛線 實體 方框 正規化 1nf 重複的組 2nf 部分依賴 3nf 傳遞依賴 表設計 名稱最長 30個字元,以字母開頭。表允許數字,下劃線,號,但不能有空格。表名唯一。不能使用保留字。乙個表最多可以包含 1000行 資料型別 v...

Lua學習筆記(基礎篇)

常用運算子 變數命名 變數名和識別符號必須以下劃線或字母開頭。名稱的本身不能包含有除字母 數字或下劃線之外的其它字元。變數名區分大小寫。變數名不得為lua中的關鍵字。lua中的關鍵字 and break do else elseif false for function if in local ni...