xslt樣式單文件舉例
下面是乙個具體的xslt樣式單文件:
<?xml version="1.0" encoding="gb2312" ?>學生花名冊
姓名
籍貫
年齡
**
模板在xslt中的應用
將上例的xml文件用xsl樣式轉換為html文件的步驟是:先用xml直譯器將xml文件解釋成dom物件,相當於建立了原文件的乙個節點樹。然後用xml直譯器解釋xsl文件,用模板匹配的方法去遍歷xml節點樹,將樹中的節點按模板的設定轉換為模板指示的顯示語言,即html語言。
接著介紹xslt常用的幾條語句。
分析xslt**執行過程
在作過xml宣告和xsl宣告之後,系統最先匹配xml源樹的根節點。根節點用"/"表示,它的匹配方法在一對括起的原始碼中宣告。按照這段**,首先生成帶有樣式資訊的html文件的開頭一段**:
學生花名冊
姓名籍貫
年齡
**
note: from envykok
現在,系統又接到了新的指示 。這條指示要求系統尋找標記為「student」的子節點,並按照「名字」下的內容將這些節點排序,然後一一處理。
對於每乙個「學生」子樹中的內容,系統為其生成表中一行的內容。每一行包含四列,分別把標記為「名字」、「籍貫」、「年齡」、「**號碼」的子節點的內容填進去。其中「名字」下的內容還是粗體顯示。對應到本例中的xml資料,生成的html**為:
李華河北1562875555
張三
北京1482873425
處理完中的內容,系統繼續生成html**:
至此,系統已處理完中的所有內容,可以「函式返回」了。系統返回到括起的原始碼中,完成html最後兩行**的生成:
把上面的html**串起來,就是生成的轉換結果檔案。
元素與屬性建立
xslt是乙個動態的樣式單,在處理過程中可產生新的元素或元素屬性,方法如下:
內 容元 素
舉 例轉換結果
建立元素
xsl:element
學生花名冊
學生花名冊
建立屬性
xsl: attribute
color:blue 學生花名冊
學生花名冊
建立文字
xsl:text (可以保護文字中的空白字元)
這是學生花名冊
這是學生花名冊
建立處理指令
xsl:processing-instruction
href="book.css" type="text/css"
<?xml-stylesheet href="book.css" type="text/css"?>
建立注釋
xsl:comment
以下是學生花名冊,請勿刪改!
節點拷貝
在對xml文件進行處理時,xslt還可以通過拷貝的方式複製節點,方法是利用 xsl:copy和xsl:copy-of。其中xsl:copy只拷貝當前節點,不包括子節點和屬性;而xsl:copy-of的拷貝內容則包括當前節點、子節點和屬性。例如對於:
ais a char
如果樣式單寫為如下形式:
copy-of :copy :
轉換後生成如下**:
copy-of : ais a charcopy :
由此可見,兩種拷貝方式結果大相徑庭。
輸出格式與編碼問題
xslt是乙個轉換語言,它的目的是將xml源文件轉換為另一種格式文件,它的輸出結果可以是html文件,也可以是帶css的xml文件。具體的輸出格式由xsl:output 指定。
如果要輸出為html文件,則寫為:
同樣,要輸出xml文件寫為:
如果文件中不出現xsl:output,將預設輸出為xml文件,但如果在匹配模板時使用了 標記,則輸出為html文件。輸出為html文件時系統都會自動加上下面語句:
此外,還可以利用xsl:output指定編碼方式,如utf-8,utf-16,gb2312等。例如: 它指定了該xslt的輸出結果是html格式,編碼方式為中文。
其他:該標籤用於定義模版,同時分配給指定結點
> 獲得結點的值
XSLT學習筆記
xslt是xml文件轉換語言,雖然不能直接定義顯示方式,但可以通過將xml文件轉換成能夠顯示的格式,以達到指定樣式的目的。由於xslt的目的是指定樣式,因此並不能說是完全的通用轉換語言。目前來說,xml文件轉換的許多場合下都可以使用xslt。建立xslt樣式表,其中心就是定義模板。xslt樣式表可以...
xslt學習筆記
元素 元素用於構建模板。match 屬性用於聯絡 xml元素和模板。match 屬性也可用來為整個文件定義模板。match 屬性的值是 xpath 表示式 舉例,match 定義整個文件 元素 元素用於提取某個選定節點的值,並把值新增到轉換的輸出流中 元素 元素可被用於選取某個指定節點集的每個 xm...
XSLT學習筆記
xslt 是xml 文件轉換語言,雖然不能直接定義顯示方式,但可以通過將 xml文件轉換成能夠顯示的格式,以達到指定樣式的目的。由於 xslt 的目的是指定樣式,因此並不能說是完全的通用轉換語言。目前來說,xml文件轉換的許多場合下都可以使用 xslt。建立 xslt 樣式表,其中心就是定義模板。x...