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...