轉自:http://blog.csdn.net/crystalbruce/article/details/7401602html
XSLT分爲兩類:java
1:客戶端轉換:須要瀏覽器的支持。apache
2:服務器轉換:須要使用編程將XML根據XSLT文檔轉換成相應的HTML,在輸出到客戶端。編程
服務器轉換分爲兩類:api
1:實時轉換:當服務器接收客戶端請求後,藉助於JSP、PHP等動態腳本語言臨時根據XSLT轉換XML,而後在將轉換後的HTML發送給客戶端。瀏覽器
2:批量轉換:服務器按期轉換XML,當服務器接收到請求後直接將已有的HTML發送給客戶端,適用於XML變化頻率較低的狀況。服務器
經常使用的XSLT轉換處理器:app
1:Xalan:Apache的子項目。網站http://xalan.apache.org網站
2:Saxon:SourceForge的子項目。網站http://saxon.sourceforge.netspa
所需包:
xalan.jar:Xalan的核心類庫,須要依賴於serializer.jar。
xercesImpl.jar、xml-apis.jar:Java API for XML Processing(JAXP)的核心類庫。
使用方法:
xalan.jar自己就是一個可執行的程序。
一:在DOS中使用
輸入
java -classpath serializer.jar -jar xalan.jar
命令會輸出xalan.jar的各類選項,如下是經常使用選項:
-IN:指定須要轉換的XML;
-XSL:指定使用的XSLT樣式單,若是在XML文檔中已經引入了XSLT,則可省略此項;
-OUT:指定轉換後輸出的目標文檔。
示例:
java -classpath serializer.jar -jar xalan.jar -IN name.xml -OUT.name.html
二:使用在Web應用中編程方式
主要使用的類和接口以下:
1:TransformerFactory:轉換器工廠,負責生產轉換器;
2:Transformer:XSLT轉換器,負責加載XSLT樣式單文檔,並執行轉換;
3:Source:表明源XML文檔的接口,其經常使用實現類有DOMSource、StreamSource、SAXSource;
4:Result:表明轉換結果的文檔接口,其經常使用實現類有DOMResult、StreamResult、SAXResult。
步驟:
1:使用TransformerFactory的newInstance()方法建立一個轉換器工廠;
2:調用轉換器工廠的newTransformer(Source xmlSource)方法建立一個轉換器;
3:調用轉換器的transform(Source xmlSource, Result OutputTarget)方法執行轉換。
程序示例:
<%@ page contentType="text/html; charset="UTF-8" language="java" errorPage="" %> <%@ page import="javax.xml.transform.*, javax.xml.transform.stream.*" %> <% //建立一個轉換工廠 TransformerFactory tFactory = TransformerFactory.newInstance(); //用指定的XSLT樣式單文件建立一個轉換器 Transformer transformer = tFactory.newTransformer(new StreamSource(application.getRealPath("WEB-INF/") + "/name.xslt")); //執行轉換,並將轉換後的目標文檔做爲響應輸出 transformer.transform(new StreamSource(application.getRealPath("WEB-INF/") + "/name.xml"), new StreamResult(response.getOutputStream())); %>
Saxon的功能很強大,其實現了XSLT3.0、XQuery3.0和XPath3.0等規範。
saxon9.jar與此名類似的爲核心類庫。
其使用方法與Xalan相似。
使用命令:
java -jar saxon9.jar -s:xmlSource.xml -o:outputTarget.html xsl:name.xslt
編程方法與Xalan的編程方法同樣,由於都是面向JAXP規範編程