当前位置: 首页 > 图文教程 > 网络编程 > JSP > XSLT合并模板简述

JSP
JDBC 入门(一) - 开始
JDBC 入门(二) - 建立联接
JDBC 入门(三) - 设置表
java在Linux下的web应用(一)
java在Linux下的web应用(二)
Servlet开发中JDBC的高级应用
可以使用多个jsp定制标签在JSP中达到接近servelt的处理效果
JSP应用程序开发中安全问题的实例解析
现场纪实—如何入侵基于JSP的网站
windows中双击jar文件即可运行写法
修改Tomcat的主配置文件,增加一个Postgre数据库JDBC连接池。
JSP报表打印的一种简单解决方案
JSP如何保存用户上次登录时间
当Tomcat遭遇JBDC Driver,出现 Cannot create resource instance !
使用jsp生成彩色汉字验证码
基于JDBC的数据库连接池技术研究与应用
JSP数据库连接池的必要性
在JSP页面中实现检索数据的分页显示
在jsp中作HTTP认证的方法
JSP通过JDBC与Oracle相连

JSP 中的 XSLT合并模板简述


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-03   浏览: 71 ::
收藏到网摘: n/a

XSLT合并模板简述
日期:10/24/2004 9:22:23 AM
l    XSLT复用使用模板有两种方式
1.    包含复用
2.    导入复用
l    在这之前,我们必须熟悉以下的概念
1.    模板的优先级
由于XSLT有复用模板的功能,,当有模板产生冲突,就需要根据模板的优先级来选择应用哪一个模板.XSLT处理器总是优先选择模板优先级较高的模板..
2.    那什么是包含复用呢?即一个XSLT文件包含来自另一个XSLT文件中的模板.,
在XSLT文件中,使用<xsl:include href=”被包含文件”/>来使用包含复用
在包含复用里,当被包含文件与包含文件产生模板冲突时,XSLT将发出错误信号并停止或选择XSLT文档中最后定义的那个模板.
3.    什么又是导入复用?即一个XSLT文件导入另一个XSLT文件中的模板,
在XSLT文件中,使用<xsl:import href=”被导入的文件”/>来使用导入复用.
在导入复用里,当被导入文件与导入文件中产生模板冲突时,被导入文件中的模板的优先级低于导入文件中的模板的优先级,所以会优先选用导入文件中的模板.
l    下面,我举出几个例子.
1    包含复用例子(无模板冲突)
(在压缩包中的文件includeImport.xml, includeNo1.xslt, includeNo2.xslt)
includeImport.xml 源代码
<?xml version="1.0" encoding="gb2312"?>
<!-- //包含复用(无模板冲突时) -->
<?xml-stylesheet type="text/xsl" href="includeNo1.xslt"?>
<includeImport>
    <include name="include">INCLUDE</include>
    <import name="import">IMPORT</import>
</includeImport>
ncludeNo1.xslt 源代码
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output  version="1.0" method="html" encoding="gb2312"/>
 <xsl:include href="includeNo2.xslt"/>   <!--     -->
       <xsl:template match="/">
                  <xsl:apply-templates select="includeImport/include "/>
                  <xsl:apply-templates select="includeImport/import "/>
            </xsl:template>
       <xsl:template match="include">
                    Element Value = <xsl:value-of select="."/>
                    Attribute Value = <xsl:value-of select="./@name"/>
              </xsl:template> 
                 <xsl:import href="importNo2.xslt"/> 
</xsl:stylesheet>
includeNo2.xslt 源代码
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output  version="1.0" method="html" encoding="gb2312"/>  
  <xsl:template match="import ">
          Element Value = <xsl:value-of select="."/>
          Attribute Value = <xsl:value-of select="./@name"/> 
  </xsl:template> 
  </xsl:stylesheet>
2     包含复用例子(有模板冲突)请注意这里的实难结果
(在压缩包中的文件includeImport.xml, includeYes1.xslt, includeYes2.xslt)
includeImport.xsl 源代码
<?xml version="1.0" encoding="gb2312"?>
<!-- //包含复用(有模板冲突时) -->
<?xml-stylesheet type="text/xsl" href="includeYes1.xslt"?>
<includeImport>
    <include name="include">INCLUDE</include>
    <import name="import">IMPORT</import>
</includeImport>
includeYes1.xslt 源代码
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output  version="1.0" method="html" encoding="gb2312"/>
       <xsl:template match="/">
                  <xsl:apply-templates select="includeImport/include "/>
        </xsl:template>
       <xsl:template match="include">
         Use Tempale includeYes1.xslt 
                    Element Value = <xsl:value-of select="."/>
                    Attribute Value = <xsl:value-of select="./@name"/>
        </xsl:template> 
          <xsl:include href="includeYes2.xslt"/>   <!--     --> 
</xsl:stylesheet>
includeYes2.xslt 源代码
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output  version="1.0" method="html" encoding="gb2312"/>  
    <xsl:template match="include">
         Use Tempale includeYes2.xslt 
                    Element Value = <xsl:value-of select="."/>
                    Attribute Value = <xsl:value-of select="./@name"/>
        </xsl:template> 
  </xsl:stylesheet>
3    导入复用例子(无模板冲突)(这个结果总是出错,不知道为什么?)
4    导入复用例子(有模板冲突)请注意导入文件与被导入文件的模板的优先级,差看结果优先选择了哪一个文件的模板 (这个结果总是出错,不知道为什么?)

附件有原代码.
附件:1119012920216XSLT.rar(15K)