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


轉自:http://blog.csdn.net/crystalbruce/article/details/7401602

 

XSLT分為兩類:

1:客戶端轉換:需要瀏覽器的支持。

2:服務器轉換:需要使用編程將XML根據XSLT文檔轉換成相應的HTML,在輸出到客戶端。

 

服務器轉換分為兩類:

1:實時轉換:當服務器接收客戶端請求后,借助於JSP、PHP等動態腳本語言臨時根據XSLT轉換XML,然后在將轉換后的HTML發送給客戶端。

2:批量轉換:服務器定期轉換XML,當服務器接收到請求后直接將已有的HTML發送給客戶端,適用於XML變化頻率較低的情況。

 

常用的XSLT轉換處理器:

1:Xalan:Apache的子項目。網站http://xalan.apache.org

2:Saxon:SourceForge的子項目。網站http://saxon.sourceforge.net

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM