日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习笔记——XSLT转换器的使用(Xalan和Saxon) .(转)

發(fā)布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记——XSLT转换器的使用(Xalan和Saxon) .(转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自:http://blog.csdn.net/crystalbruce/article/details/7401602

?

XSLT分為兩類:

1:客戶端轉(zhuǎn)換:需要瀏覽器的支持。

2:服務(wù)器轉(zhuǎn)換:需要使用編程將XML根據(jù)XSLT文檔轉(zhuǎn)換成相應(yīng)的HTML,在輸出到客戶端。

?

服務(wù)器轉(zhuǎn)換分為兩類:

1:實時轉(zhuǎn)換:當(dāng)服務(wù)器接收客戶端請求后,借助于JSP、PHP等動態(tài)腳本語言臨時根據(jù)XSLT轉(zhuǎn)換XML,然后在將轉(zhuǎn)換后的HTML發(fā)送給客戶端。

2:批量轉(zhuǎn)換:服務(wù)器定期轉(zhuǎn)換XML,當(dāng)服務(wù)器接收到請求后直接將已有的HTML發(fā)送給客戶端,適用于XML變化頻率較低的情況。

?

常用的XSLT轉(zhuǎn)換處理器:

1:Xalan:Apache的子項目。網(wǎng)站http://xalan.apache.org

2:Saxon:SourceForge的子項目。網(wǎng)站http://saxon.sourceforge.net

?

Xalan處理器

?

所需包:

xalan.jar:Xalan的核心類庫,需要依賴于serializer.jar。

xercesImpl.jar、xml-apis.jar:Java API for XML Processing(JAXP)的核心類庫。

?

使用方法:

xalan.jar本身就是一個可執(zhí)行的程序。

?

一:在DOS中使用

輸入

java -classpath serializer.jar -jar xalan.jar

命令會輸出xalan.jar的各種選項,以下是常用選項:

-IN:指定需要轉(zhuǎn)換的XML;

-XSL:指定使用的XSLT樣式單,如果在XML文檔中已經(jīng)引入了XSLT,則可省略此項;

-OUT:指定轉(zhuǎn)換后輸出的目標(biāo)文檔。

?

示例:

java -classpath serializer.jar -jar xalan.jar -IN name.xml -OUT.name.html

?

二:使用在Web應(yīng)用中編程方式

主要使用的類和接口如下:

1:TransformerFactory:轉(zhuǎn)換器工廠,負(fù)責(zé)生產(chǎn)轉(zhuǎn)換器;

2:Transformer:XSLT轉(zhuǎn)換器,負(fù)責(zé)加載XSLT樣式單文檔,并執(zhí)行轉(zhuǎn)換;

3:Source:代表源XML文檔的接口,其常用實現(xiàn)類有DOMSource、StreamSource、SAXSource;

4:Result:代表轉(zhuǎn)換結(jié)果的文檔接口,其常用實現(xiàn)類有DOMResult、StreamResult、SAXResult。

?

步驟:

1:使用TransformerFactory的newInstance()方法創(chuàng)建一個轉(zhuǎn)換器工廠;

2:調(diào)用轉(zhuǎn)換器工廠的newTransformer(Source xmlSource)方法創(chuàng)建一個轉(zhuǎn)換器;

3:調(diào)用轉(zhuǎn)換器的transform(Source xmlSource, Result OutputTarget)方法執(zhí)行轉(zhuǎn)換。

?

程序示例:

[html] view plaincopyprint?
  • <%@?page?contentType="text/html;?charset="UTF-8"?language="java"?errorPage=""?%>??
  • <%@?page?import="javax.xml.transform.*,?javax.xml.transform.stream.*"?%>??
  • <%??
  • //創(chuàng)建一個轉(zhuǎn)換工廠??
  • TransformerFactory?tFactory?=?TransformerFactory.newInstance();??
  • //用指定的XSLT樣式單文件創(chuàng)建一個轉(zhuǎn)換器??
  • Transformer?transformer?=?tFactory.newTransformer(new?StreamSource(application.getRealPath("WEB-INF/")?+?"/name.xslt"));??
  • //執(zhí)行轉(zhuǎn)換,并將轉(zhuǎn)換后的目標(biāo)文檔作為響應(yīng)輸出??
  • transformer.transform(new?StreamSource(application.getRealPath("WEB-INF/")?+?"/name.xml"),?new?StreamResult(response.getOutputStream()));??
  • %>??
  • <%@ page contentType="text/html; charset="UTF-8" language="java" errorPage="" %> <%@ page import="javax.xml.transform.*, javax.xml.transform.stream.*" %> <% //創(chuàng)建一個轉(zhuǎn)換工廠 TransformerFactory tFactory = TransformerFactory.newInstance(); //用指定的XSLT樣式單文件創(chuàng)建一個轉(zhuǎn)換器 Transformer transformer = tFactory.newTransformer(new StreamSource(application.getRealPath("WEB-INF/") + "/name.xslt")); //執(zhí)行轉(zhuǎn)換,并將轉(zhuǎn)換后的目標(biāo)文檔作為響應(yīng)輸出 transformer.transform(new StreamSource(application.getRealPath("WEB-INF/") + "/name.xml"), new StreamResult(response.getOutputStream())); %>

    Saxon處理器

    Saxon的功能很強(qiáng)大,其實現(xiàn)了XSLT3.0、XQuery3.0和XPath3.0等規(guī)范。

    ?

    saxon9.jar與此名相似的為核心類庫。

    ?

    其使用方法與Xalan類似。

    使用命令:

    java -jar saxon9.jar -s:xmlSource.xml -o:outputTarget.html xsl:name.xslt

    ?

    編程方法與Xalan的編程方法一樣,因為都是面向JAXP規(guī)范編程

    轉(zhuǎn)載于:https://www.cnblogs.com/qingzhou/p/4205674.html

    總結(jié)

    以上是生活随笔為你收集整理的学习笔记——XSLT转换器的使用(Xalan和Saxon) .(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。