阿瑟 發表
其實XSL才是為XML量身訂作的樣式語言, 他除了能夠設定資料的顯示樣式以外, 在定義XML以後, 可以將XML轉換成不同的格式, 其功能強大乃CSS無法批敵也!
如果想要用很複雜的樣式怎麼辦? 這次小弟介紹您使用一種功能超強的樣式語言: XSL.
<?xml version="1.0" encoding="big5" ?> <catalog> <tutorial> <title>認識XML</title> <author>阿得</author> <date>9/19/2002</date> <category>XML教學</category> </tutorial> <tutorial> <title>Javascript: 隨機背景音樂</title> <author>阿得</author> <date>8/31/2002</date> <category>Javascript教學</category> </tutorial> <tutorial> <title>VBscript: Class類別</title> <author>阿得</author> <date>9/17/2002</date> <category>Vbscript教學</category> </tutorial> </catalog> |
<?xml version="1.0" encoding="big5" ?> <HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <body> <xsl:for-each select="catalog/tutorial"> <div style="background-color:#336699;color:#ffffff;font-size:13px;font-weight:bold;font-family:verdana,arial"> <xsl:value-of select="title" /> - <xsl:value-of select="category" /> </div> <blockquote style="color:#555555;font-size:11px;font-family:verdana,arial"> <xsl:value-of select="author" /> 於 <xsl:value-of select="date" /> 發表 </blockquote> </xsl:for-each> </body> </HTML> |
HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl, 其實就是HTML標籤, 代表從這邊開始的內容是用HTML, 後面的xmlns:xls是定義命名空間, 總之照打就對囉.
xsl:for-each select="catalog/tutorial", xsl:for-each其實作用有點像是for迴圈, 意思是以下的內容是每一個tutorial標籤都有的. 另外值得注意的一點就是, XML裡面一定要有一個root標籤, 如在這個範例裡面的root標籤是catalog, root就是最底層的標籤, 如果不懂得話可以參考test2.xml的內容.
<xsl:value-of select="title" />, 由於你在上面已經寫了for-each, 所以在這邊你就不需要打root標籤和上面的父標籤, 因為瀏覽器已經知道這個標籤在什麼地方. xsl:value-of 就是將指定的標籤 (也就是select指定的, 在此例是<title>與<title>中的內容), 而後面的 / 代表是省略了尾標籤. 在XML中的規定比較嚴格, 所有的標籤都必須有起始和尾標籤, 用/ 代表的就是起始標籤和尾標籤中並沒有值, 意同<xsl:value-of select="title"></xsl:value-of>
<?xml version="1.0" encoding="big5" ?> <?xml-stylesheet type="text/xsl" href="test2.xsl" ?> <catalog> .....略 |