您好,登錄后才能下訂單哦!
通過XSLT轉換XML的案例?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
一 介紹
XSLT是一種用來轉換XML文檔結構的語言,它是EXtensible Style Language Extensions Transformations的縮寫。
XSLT類似與HTML中的CSS,但是比CSS的功能更加強大。
根據W3C規范說明書的說明,最早設計XSLT是幫助將XML文檔轉換為其他文檔。
但是隨著應用的深入,XSLT已不僅僅用于將XML轉換為HTML或其他文檔格式,而是成為一種用來轉換XML文檔結構的語言。
XSLT的元素和屬性提供了處理XML數據的聲明,可以使用XSLT詞匯來提取其他文檔的內容,創建新的元素和屬性,并且在更多情況下是這兩種方式的有機結合。
XSLT 1.0轉換要求兩個操作文件(XML源文檔和XSLT樣式表文件)來生成一個結果文檔。
在新的XSLT 2.0標準中,允許將二者合一。
通過XSLT可以將每個元素及其屬性與HTML或XHTML進行匹配,從而實現文檔內容的正確顯示和輸出。
一個XSLT樣式表是一個遵守XML規則格式的正確有效的XML文檔,其擴展名為.xsl。
在XML文檔中使用XSLT樣式表的語法如下:
<?xml-stylesheet type="text/xsl" href="XSL樣式表路徑"?>
二 通過XSLT轉換XML應用
本實例應用XSLT可擴展樣式,將XML文件轉換為其他格式的文件后再輸出。
本實例通過XSLT轉換XML,輸出的是經XSLT樣式轉換后的XML文件中的數據。
首先進行XML聲明,指定文檔為XML文檔。
注意XSLT樣式表本身就是一個XML文檔,因此它也符合XML文檔的規則。
然后聲明XSLT樣式表,并聲明XSLT名稱空間的前綴(xsl:stylesheet)。
XSLT名稱空間的前綴有兩種寫法:xsl:stylesheet和xsl:transform。
其意義和作用完全相同,只是前一種更為常用。通過xmlns:xsl屬性指定XSLT名稱空間。
接著定義模板的規則,這里使用xsl:template元素進行封裝。Math屬性指定一個模式,用于說明該規則匹配什么樣的輸入。
最后實現XML文檔的轉換。
三 代碼
1、創建cdcatalog.xsl文件的代碼如下:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <body> <h3>My CD Collection</h3> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td> <xsl:value-of select="title"/> </td> <td> <xsl:value-of select="artist"/> </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
2、創建cdcatalog.xml代碼如下:
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> <catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd> <cd> <title>Hide your heart</title> <artist>Bonnie Tyler</artist> <country>UK</country> <company>CBS Records</company> <price>9.90</price> <year>1988</year> </cd> </catalog>
四 運行結果
感謝各位的閱讀!看完上述內容,你們對通過XSLT轉換XML的案例大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。