學習筆記——XSLT轉換器的使用(Xalan和Saxon) .(轉)

轉自: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處理器

 

所需包:

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)方法執行轉換。

 

程序示例:

  1. <%@ page contentType="text/html; charset="UTF-8" language="java" errorPage="" %>  
  2. <%@ page import="javax.xml.transform.*, javax.xml.transform.stream.*" %>  
  3. <%  
  4. //建立一個轉換工廠  
  5. TransformerFactory tFactory = TransformerFactory.newInstance();  
  6. //用指定的XSLT樣式單文件建立一個轉換器  
  7. Transformer transformer = tFactory.newTransformer(new StreamSource(application.getRealPath("WEB-INF/") + "/name.xslt"));  
  8. //執行轉換,並將轉換後的目標文檔做爲響應輸出  
  9. transformer.transform(new StreamSource(application.getRealPath("WEB-INF/") + "/name.xml"), new StreamResult(response.getOutputStream()));  
  10. %>  
<%@ 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處理器

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規範編程

相關文章
相關標籤/搜索