天天看點

《重構HTML:改善Web應用的設計(修訂版)》——2.7 XSLT

本節書摘來自異步社群《重構html:改善web應用的設計(修訂版)》一書中的第2章,第2.7節,作者: 【美】elliotte rusty harold 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

在html轉換為良構的xhtml後,xslt(extensible stylesheet language transformations,可擴充樣式表語言轉換)是衆多可運作在html文檔上的xml工具之一。實際上,它是我最中意的工具之一,也是解決各種任務要做的第一件事。例如,我用它自動生成很多内容,比如通過html頁面的零星整理生成rss和atom feed。為了能在文檔上使用xslt實際上也是重構文檔為良構的xhtml的最大理由之一。xslt可以查到文檔需要修複的問題,并能自動化一些修複工作。

用xslt來重構xhtml通常不需太多的改動。是以,大部分重構樣式表是以代碼清單2-9中的辨別轉換開始的。

雖然這隻不過是将整個文檔從輸入複制到輸出,但之後你就可以按照需求用一些額外的規則修改這個基本的樣式表。例如,假如要把廢棄的元素轉換為元素,你可以添加如下規則:

需要注意的是,在match屬性中xpath表達式必須使用命名空間字首,盡管需要比對的元素使用的是預設的命名空間。在轉換xhtml文檔時,這是一個常見的疑問。在xpath表達式中使用xhtml命名空間時,記住你必須總要賦予它一個字首。

注解

介紹xslt的好文章在書中或網上都可以找到。首先推薦我寫的兩篇。the xml 1.1 bible(wiley,2003)第15章包括了xslt的深度介紹,它也可在www.cafeconleche.org/books/bible3/chapters/ch15.html上找到。elliotte harold和w. scott means著的xml in a nutshell,3rd edition(o’reilly,2004)提供更為詳細的介紹。最後,如果想了解得更深入,我推薦michael kay 的xslt: programmer’s reference(wrox,2001)和xslt 2.0: programmer’s reference(wrox,2004)。