<%-- JSP全站自动生成HTML下载新闻系统 V3.1 作者:JSP天空网站长 曹进 QQ:173241393 --%> JSP结合XML+XSLT将输出转换为HTML格式
 
用户名:
密码:
终身会员
  首页 网络文摘 技术专题 下载中心 JSP培训 公司产品 JSP虚拟主机 技术论坛 会员 JSP免费空间  
  技术文摘: JSP基础 | JSP高级 | JSP环境 | JAVA基础 | JAVA高级 | JAVA工具 | JAVA数据库 | WEB框架 | XML相关 | JAVA考试 | J2EE相关 | J2ME相关 |
  视频下载: 程序设计数据库相关教程计算机基础教程图形图像网络技术网络安全时空书库EasyShop虚拟主机JSP培训技术论坛
  书籍教程: JSP教程Java教程图像软件XML教程数据库教程网页教程工具软件服务器相关ASP教程PHP教程CGI教程.NET教程
  代码下载: ASP代码下载JSP代码下载PHP代码下载CGI代码下载Flash代码C/C++/VCPowerBuilderDelphiVisualBasicVisualFoxpro
您的位置: 首页 -> 文章分类 -> JSP高级 -> JSP结合XML+XSLT将输出转换为HTML格式
 文摘搜索
 
 文摘资源分类
 
 文摘总排行榜TOP10
 
 最新更新文摘TOP10
 

JSP结合XML+XSLT将输出转换为HTML格式

[来源]管理员   [作者]网络文摘   [时间]2007-04-10
推荐等级: 点击:

我们知道 XML+XSLT就可以直接输出到支持XML的浏览器上,如IE 5.0以上,但是,我们还要考虑到有不少浏览器不直接支持XML,在这种情况下,我们需要在服务器上进行转换成HTML输出到浏览器,这种临时过渡办法恐怕要在一段时间内一直要使用. 使用JSP 加上TABLIB标识库,我们可以完成这种转换。

著名OPEN SOURCE项目组JAKARTA.APACHE.ORG推出的系列标识库中,就有这个功能的TANGLIB:HTTP://JAKARTA.APACHE.ORG/TAGLIBS/DOC/XSL-DOC/INTRO.HTML

  按照JAKARTA配置方法,有点繁琐,需要修改或定义WEB.XML,本人经过摸索,使用下列相当简单的办法,就可以使JSP能成功运行XSL这个标识库了。

  XSL标识库有三个关键包:
   XERCES.JAR 可以在HTTP://XML.APACHE.ORG/中得到
   XALAN.JAR 可以在HTTP://XML.APACHE.ORG/中得到
   XSL.JAR 从HTTP://JAKARTA.APACHE.ORG/TAGLIBS/DOC/XSL-DOC/INTRO.HTML得到

  1.将这三个包放置到TOMCAT的COMMON/LIB目录下,或者直接放入CLASSPATH环境中。

  2.在JSP中调用标识库:

  原来JAKARTA推荐方法是:


%@TAGLIB URI="HTTP://JAKARTA.APACHE.ORG/TAGLIBS/XSL-1.0" PREFIX="XSL" %>

  这就需要在/WEB-INF/WEB.XML下定义一下HTTP://JAKARTA.APACHE.ORG/TAGLIBS/XSL-1.0指向。如:


<TAGLIB>
<TAGLIB-URI>HTTP://JAKARTA.APACHE.ORG/TAGLIBS/XSL-1.0</TAGLIB-URI>
<TAGLIB-LOCATION>/WEB-INF/XSL.TLD</TAGLIB-LOCATION>
</TAGLIB>

  这种做法虽然很标准,但是,如果你的容器一直使用TOMCAT,就完全不必了。

  我们的做法是:


%@TAGLIB URI="XSL.JAR" PREFIX="XSL" %> 

  我们以JAKARTA的XSL TAGLIB附带的APPLY.JSP为例,正好了解一下JSP XML XSLT三者之间的关系:

  APPLY.JSP


%@TAGLIB URI="XSL.JAR" PREFIX="XSL" %>
<HTML>
<HEAD>
<TITLE>EMPLOYEE LIST</TITLE>
</HEAD>
<BODY BGCOLOR="WHITE">

<P>下面展示了JSP的四种组合XML XSLT的方法:
<P>下面使用APPLY方法,将已经存在的EMPLOYEES.XML和EMPLOYEELIST.XSL结合在一起

<XSL:APPLY XML="/XML/EMPLOYEES.XML" XSL="/XML/EMPLOYEELIST.XSL"/>
<HR>


<P>下面是使用已经存在EMPLOYEELIST.XSL 然后在JSP中自己直接写入XML数据.


<XSL:APPLY XSL="/XML/EMPLOYEELIST.XSL">
<XML VERSION="1.0" ENCODING="ISO-8859-1">
<EMPLOYEES>
<EMPLOYEE ID="123">
<FIRST-NAME>JOHN</FIRST-NAME>
<LAST-NAME>DOE</LAST-NAME>
<TELEPHONE>800-555-1212</TELEPHONE>
</EMPLOYEE>
<EMPLOYEE ID="456">
<FIRST-NAME>JANE</FIRST-NAME>
<LAST-NAME>SMITH</LAST-NAME>
<TELEPHONE>888-555-1212</TELEPHONE>
</EMPLOYEE>
<EMPLOYEE ID="789">
<FIRST-NAME>GEORGE</FIRST-NAME>
<LAST-NAME>TAYLOR</LAST-NAME>
<TELEPHONE>555-555-1212</TELEPHONE>
</EMPLOYEE>
</EMPLOYEES>
</XSL:APPLY>
<HR>

<P>下面使使用INCLUDE调用的办法,这样一个XSLT样式可以适应不同的XML文件。

<XSL:APPLY XSL="/XML/EMPLOYEELIST.XSL">
<XSL:INCLUDE PAGE="/XML/EMPLOYEES.XML"/>
</XSL:APPLY>
<HR>

<P>下面是使用IMPORT方法,在PAGE-SCOPE(类似SCOPE="PAGE")中导入XML文件</P>

<XSL:IMPORT ID="DATA" PAGE="/XML/EMPLOYEES.XML"/>
<XSL:APPLY NAMEXML="DATA" XSL="/XML/EMPLOYEELIST.XSL"/>

</BODY>
 

  在上面程序中,展示了四种JSP组合XML XSLT的方法,基本可以满足我们的需要。注意上面的XML文件路径是"/XML/",这是相对TOMCAT容器的绝对路径。

  我们简单看一下EMPLOYEELIST.XSL和EMPLOYEES.XML内容:

  EMPLOYEELIST.XSL类似HTML中的CSS,主要是对XML中数据显示方式进行定义:

<XML VERSION="1.0">
<XSL:STYLESHEET VERSION="1.0" XMLNS:XSL="HTTP://WWW.W3.ORG/1999/XSL/TRANSFORM">
<XSL:TEMPLATE MATCH="EMPLOYEES">
<TABLE BORDER="1" WIDTH="100%">
<TR>
<TH>ID</TH>
<TH>EMPLOYEE NAME</TH>
<TH>PHONE NUMBER</TH>
</TR>
<XSL:FOR-EACH SELECT="EMPLOYEE">
<TR>
<TD>
<XSL:VALUE-OF SELECT="@ID"/>
</TD>
<TD>
<XSL:VALUE-OF SELECT="LAST-NAME"/>,
<XSL:VALUE-OF SELECT="FIRST-NAME"/>
</TD>
<TD>
<XSL:VALUE-OF SELECT="TELEPHONE"/>
</TD>
</TR>
</XSL:FOR-EACH>
</TABLE>
</XSL:TEMPLATE>

</XSL:STYLESHEET>

 

EMPLOYEES.XML

<XML VERSION="1.0" ENCODING="ISO-8859-1">


<EMPLOYEES>
 <EMPLOYEE ID="123">
  <FIRST-NAME>JOHN</FIRST-NAME>
  <LAST-NAME>DOE</LAST-NAME>
  <TELEPHONE>800-555-1212</TELEPHONE>
 </EMPLOYEE>

 <EMPLOYEE ID="456">
  <FIRST-NAME>JANE</FIRST-NAME>
  <LAST-NAME>SMITH</LAST-NAME>
  <TELEPHONE>888-555-1212</TELEPHONE>
 </EMPLOYEE>

  <EMPLOYEE ID="789">
  <FIRST-NAME>GEORGE</FIRST-NAME>
  <LAST-NAME>TAYLOR</LAST-NAME>
  <TELEPHONE>555-555-1212</TELEPHONE>
 </EMPLOYEE>
</EMPLOYEES>
 

  如果我们在EMPLOYEES.XML顶部加入:


<XML:STYLESHEET TYPE="TEXT/XSL" HREF="CATALOG.XSL"> 

  用支持XML的IE 5.0以上浏览器调用,其显示页面就和APPLY.JSP显示页面是一样的。

[收藏][打印][关闭]
在线咨询服务 在线咨询服务 在线咨询服务 在线咨询服务
Copyright©2005-2006陕西思远数码科技有限责任公司 服务电话:029-88212987 传真:029-88278265 售后服务QQ:173241393
地址:陕西省西安市吉祥路186号太白新苑C座2104 陕ICP备05004508号