原文: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)方法执行转换。

程序示例:

[html] view plaincopy
  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. %>

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规范编程。

XSLT转换器的使用(Xalan和Saxon)相关推荐

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

    转自:http://blog.csdn.net/crystalbruce/article/details/7401602 XSLT分为两类: 1:客户端转换:需要浏览器的支持. 2:服务器转换:需要使 ...

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

    XSLT分为两类: 1:客户端转换:需要浏览器的支持. 2:服务器转换:需要使用编程将XML根据XSLT文档转换成相应的HTML,在输出到客户端. 服务器转换分为两类: 1:实时转换:当服务器接收客户 ...

  3. saxon XSLT 转换器

    1.简介: 是一款XSLT处理器,支持XSLT1.0,XSLT2.0: http://www.saxonica.com/welcome/welcome.xml 从2003年中发布的7.6版开始,Sax ...

  4. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

  5. Java 使用 Dom4j 解析 XML 指南

    Java 使用 Dom4j 解析 XML 指南 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用 ...

  6. Saxon - XSLT与XQuery处理器

    Saxon 是由英国的Michael Kay开发的XSLT与XQuery处理器,自从1999年以开源产品发布,引导着XSLT处理器技术,并赢得较高声誉.迄今依然是仅有的XSLT2.0规范草案的实现,在 ...

  7. saxon 使用_Java XML和JSON:Java SE的文档处理,第1部分:SAXON和Jackson

    saxon 使用 XML和JSON对我来说很重要,我感谢Apress让我写了一整本有关它们的书. 在本文中,我将简要介绍新书的第二版Java XML和JSON . 如果有足够的空间,我还将展示两个有用 ...

  8. 用XSLT和XML改进Struts

         摘要 Struts是一个优秀的Java Web开发框架.Struts是Apache项目之一,现在Struts已经在Java开发团体中得到了广泛的支持.在这篇文章中Julien Mercay ...

  9. 使用Java和XSLT的10条技巧 (转)

    使用Java和XSLT的10条技巧 这篇文章从书中选出了我认为非常重要的10条技巧.但实际上这有限的10条只是粗略的描述了什么是可能的.其中大多数都集中在Java和XSLT的组合上,而不是在XSLT( ...

最新文章

  1. 教你如何处理Nginx禁止ip加端口访问的问题
  2. 使用CoreData的轻量级自动数据迁移
  3. 单片机蓝牙初始化_单片机程序那些事
  4. python调用c++总结
  5. Notepad++如何更改背景色(以保护视力色为例)
  6. matlab显示的图片,手动保存时四周有白边
  7. 6、数据库设计为什么要使用三大范式
  8. iOS开发-编译出错 duplicate symbols for architecture x86_64
  9. GPRS底层API(转)
  10. Kitti数据测试_视觉/IMU/LiDAR融合
  11. 学习Python爬虫有哪些书籍书籍?看这几本书就够了
  12. jeb 导出java_[原创] JEB2插件,导出APK资源文件
  13. C# 客户端PDF文件打印方法大全
  14. 删除电脑被占用的串口
  15. 那个叫“中国移动”的精神病人就要被治愈了
  16. 【原创】【SPI】SPI通信协议介绍
  17. Java面试题日积月累(JavaSE40道)
  18. 中国内地摇滚歌手及代表作
  19. 如何让内容运营渗透产品,带动产品高速成长
  20. 南京邮电大学2013年硕士研究生招生复试及同等学力加试参考书目

热门文章

  1. 「格式技巧」在word表格中做出分割线效果
  2. YOLOv5源码逐行超详细注释与解读(7)——网络结构(2)common.py
  3. 又签了 1000 本
  4. linux 下搜索的命令,Linux下搜索命令
  5. 国土调查数据库字母缩写各自代表的意思?
  6. 赚钱 36 计 - 第六计:老二计
  7. 电动吸鼻器要做CCC认证吗?
  8. 【华为云技术分享】【一统江湖的大前端(8)】matter.js 经典物理
  9. rgb sw 线主板接口在哪_RGB实用兼具:火鸟 黎明至尊 ARGB机箱 上机体验
  10. android版本怎么升级9.0,为什么安卓系统都升级到9.0了,而国内大部分都是Android7呢?...