XSLT入門 第3章 實踐篇 XSLT例項

2021-03-31 08:56:29 字數 1936 閱讀 3936

目錄

--1 複製

--2 行列交換

--3 **

--4 將**轉換成csv檔案

這是個複製所有節點的例子(程式1)。例如從xhtml變換成xhtml等情況,源和結果的元素大部分相同時,就可以將該例項稍作修改,僅針對需要改動的部分書寫**即可。

程式1: copy.xsl

<?xml version="1.0"?>

使用xsl:xcopy元素將各節點進行遞迴複製。

該例項可以將html**的行和列進行交換(程式2)。

程式2: table.xsl

<?xml version="1.0"?>

因為是交換行列,所以只需輸出源**的列數的行就可以了。在這裡,使用

迴圈,按照第一行的列數來新建行(tr元素)。使用如下迴圈

來取出各行中將要儲存的資料。由於當前節點是tr[1]/td,那麼使用../tdと將僅能取出第一行的td元素。為了取出所有td元素,須寫成../../tr/td的形式。

變數x中儲存新建**的總行數,變數y中儲存當前正在生成的行的行數-1。因此,

使用該條件輸出td元素中的資料。mod是取餘數的運算子。

將如圖1所示的頁面(程式3)進行轉換,可以得到如圖2所示的輸出結果。

圖1: 輸入頁面

程式3: table.xml

<?xml version="1.0"?>甲乙

丙丁

戊 己庚辛

壬癸

圖2: 輸出頁面

**可以看作是二維陣列。讓我們試著將它轉換成一維陣列。但是僅僅將**內容排列出來就失去了意義,因此我們將保留原**的行號和列號作為結果的屬性值(程式4)。

程式4: databank.xsl

<?xml version="1.0"?>

將行號和列號的資訊儲存到變數row和column中。

使用row屬性輸出行號,column屬性輸出列號。

將程式3進行轉換時,輸出如下所示。

<?xml version="1.0" encoding="utf-8"?>甲乙

丙丁戊己

庚辛壬癸

雖然xslt一般用來將xml文件轉換成xml文件,但是也能夠輸出xml文件之外的格式。下面是將含有table元素的html文件轉換成csv(***ma separated value)格式

1輸出的例子(程式5)。

程式5: csv.xsl

<?xml version="1.0"?>

,

為輸出文字格式,需要指定

由於被轉換的物件節點是表示行的tr元素,因此針對tr元素定義模板規則。若不是行中的最後乙個元素,則輸出分隔符「,」。

,

將程式3進行轉換的結果如下所示。

甲,乙,丙,丁,戊

己,庚,辛,壬,癸

注釋

1記錄中的各個資料域之間使用分隔符「,」進行分隔的資料格式。

XSLT輕鬆入門第二章 XSLT的例項

2.xslt的例項 2.1 xslt如何轉換xml 2.2 乙個例項 2.3 過程解析 2.4 xslt的用途 2.1 xslt如何轉換xml 我們打個有趣的比方,你玩過橡皮泥吧,用不同的模子按上去,就可以做出需要的形狀。如果我們假設xml資料文件是一塊大橡皮泥,xslt就象是乙個模子,用力一按,就...

XSLT輕鬆入門第二章 XSLT的例項

2.xslt的例項 2.1 xslt如何轉換xml 2.2 乙個例項 2.3 過程解析 2.4 xslt的用途 2.1 xslt如何轉換xml 我們打個有趣的比方,你玩過橡皮泥吧,用不同的模子按上去,就可以做出需要的形狀。如果我們假設xml資料文件是一塊大橡皮泥,xslt就象是乙個模子,用力一按,就...

XSLT輕鬆入門第一章 XSLT的概念

1.xslt的概念 1.1 什麼是xslt 1.2 為什麼要用xslt 1.3 xslt的歷史 1.4 什麼是xpath 1.5 xslt和css 的比較 1.6 xslt和ie5 1.xslt的概念 我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet lang...