概念相關
XSL是可擴展樣式表語言的外語縮寫,是一種用于以可讀格式呈現 XML(標準通用標記語言的子集)數據的語言。
起始于 XSL
萬維網聯盟(W3C)開始發展 XSL 的原因是:存在著對于基于 XML 的樣式表語言的需求。
CSS = HTML 樣式表
HTML 使用預先定義的標簽,每個標簽的意義很容易被理解。
HTML 中的 <table> 標簽定義表格 - 并且瀏覽器清楚如何顯示它。
向 HTML 元素添加樣式是很容易的。通過 CSS,很容易告知瀏覽器用特定的字體或顏色顯示一個元素。
XSL = XML 樣式表
XML 不使用預先定義的標簽(我們可以使用任何喜歡的標簽名),并且每個標簽的意義并不都那么容易被理解。
<table> 標簽意味著一個 HTML 表格,一件家具,或是別的什么東西 - 瀏覽器不清楚如何顯示它。
XSL 可描述如何來顯示 XML 文檔!
XSL - 不僅僅是樣式表語言
XSL 包括三部分:
XSLT - 一種用于轉換 XML 文檔的語言。
XPath - 一種用于在 XML 文檔中導航的語言。
XSL-FO - 一種用于格式化 XML 文檔的語言。
XSL-主要關鍵字
<xsl:template> 元素用于構建模板
<xsl:value-of> 元素用于提取某個選定節點的值,并把值添加到轉換的輸出流中
<xsl:for-each> 元素可用于選取指定的節點集中的每個 XML 元素
<xsl:sort>如需對結果進行排序,只要簡單地在 XSL 文件中的 <xsl:for-each> 元素內部添加一個 <xsl:sort> 元素
<xsl:if> 如需放置針對 XML 文件內容的條件測試,請向 XSL 文檔添加 <xsl:if> 元素。
<xsl:choose> 元素用于結合 <xsl:when> 和 <xsl:otherwise> 來表達多重條件測試。
<xsl:apply-templates> 元素可把一個模板應用于當前的元素或者當前元素的子節點
<xsl:when expression> 相當前于一種判斷,表示當expression成立時執行的代碼
<xsl:otherwise expression> 它與<xsl:when>一起使用,表示當when條件不成立時,執行的代碼
代碼相關
xml文件內容
<?xml version="1.0" encoding="gb2312" ?> <?xml-stylesheet type="text/xsl" href="templete.xsl" ?> <root> <food> <name>雞蛋</name> <price>$5</price> <info>很有營養的</info> <unit>2</unit> </food> <food> <name>煎餅</name> <price>$4.5</price> <info>早餐必備</info> <unit>1</unit> </food> <food> <name>皮蛋粥</name> <price>$2</price> <info>我的最愛</info> <unit>1</unit> </food> </root>
xsl文件內容
<?xml version="1.0" encoding="gb2312" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <BODY STYLE="font-family:微軟雅黑; font-size:12pt;background-color:#fff"> <xsl:for-each select="root/food"> <DIV STYLE="background-color:#eeaaaa; color:white; padding:4px"> <SPAN STYLE="font-weight:bold; color:white"> <xsl:value-of select="name"/> </SPAN> <em> <xsl:value-of select="price"/> </em> </DIV> <DIV> <xsl:value-of select="info"/> <SPAN STYLE="font-style:italic"> (<xsl:value-of select="count" />份) </SPAN> </DIV> </xsl:for-each> </BODY> </HTML> </xsl:template> </xsl:stylesheet>
程序截圖
文章列表