学习笔记——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)方法执行转换。
程序示例:
- <%@ 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()));
- %>
<%@ 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规范编程
转载于:https://www.cnblogs.com/qingzhou/p/4205674.html
学习笔记——XSLT转换器的使用(Xalan和Saxon) .(转)相关推荐
- 学习笔记——XSLT转换器的使用(Xalan和Saxon)
XSLT分为两类: 1:客户端转换:需要浏览器的支持. 2:服务器转换:需要使用编程将XML根据XSLT文档转换成相应的HTML,在输出到客户端. 服务器转换分为两类: 1:实时转换:当服务器接收客户 ...
- Office365学习笔记—Xslt自定义列表视图
1,在Office365中需要添加自定义的视图!用Spd添加视图,这儿我添加一个testView! (1)打开testView.aspx将</ZoneTemplate>节点中的内容全部删除 ...
- XSL学习笔记6 XSLT内置模板规则
XSL学习笔记6 XSLT内置模板规则 定义正确的模板规则来匹配XML树中的节点是XSLT应用的关键.为了让源文档树的节点在没有明确匹配规则的情况下,能够被递归处理,XSLT定义了几个内置的模板规则, ...
- XSLT转换器的使用(Xalan和Saxon)
原文:http://blog.csdn.net/crystalbruce/article/details/7401602 XSLT分为两类: 1:客户端转换:需要浏览器的支持. 2:服务器转换:需要使 ...
- java学习笔记14--多线程编程基础1
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...
- 竹笋炒肉的cocoon学习笔记
http://hedong.3322.org/ cocoon读[ke'ku:n],茧的意思. 接连看到几篇文章谈cocoon,因其中牵扯术语太多,看后一头雾水,遂起学习之心. 网上找到很多谈cocoo ...
- Json.Net学习笔记
Json.Net学习笔记 摘自: http://www.verydemo.com/demo_c360_i45119.html 分类: 编程语言/ ASP.NET/ 文章 导读:string goog ...
- CCNP学习笔记(6)
一.交换机 1.二层交换 特性: ①基于MAC地址转发数据帧 ②硬件工作 ③处理数据效率高,数据传输延时低 ④转发广播 2.三层交换 特性: ①提供路由功能 ②提高安全性 ③流量管理 3.网络方案中交 ...
- Programming Computer Vision with Python (学习笔记一)
转载自:http://segmentfault.com/a/1190000003941588 介绍 <Programming Computer Vision with Python>是一本 ...
最新文章
- C++编程进阶7(何时使用成员函数模板,模板类的实参推断与类型转换、继承与数组)
- android RecycleView padding 和高度一样会出现什么情况?
- Android Studio 三种添加插件的方式,androidstudio
- 百度地图infowindow
- VS2008部分使用技巧
- 【转载】指导教师的局域网聊天
- Java 面试题全梳理
- CUDA bank 及bank conflict
- 多线程—— Lock(线程锁)
- 为什么要网页模块化?
- IIS的URL重写(url地址映射)
- 12款热门Java小游戏项目的源码和教程
- Qt图像处理技术二:对QImage图片简单滤镜(暖色,冷色,反色,老照片,灰度)
- Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization
- window7系统的电脑如何调节亮度?
- GIC/ITS代码分析(1)MADT表
- Python搭建代理池爬取拉勾网招聘信息
- matlab绘制磁场图,基于Matlab的电磁场图示化教学
- PL/SQL Developer设置日期格式
- 人生的意义是什么,活着的意义是什么?