zoukankan      html  css  js  c++  java
  • call-template和apply-templates

    对xml模板 来说,name属性是很关键的 call-template /apply-template 的name必须要和模板的name相对应。模板相当于一个函数,可以暂时这么看。而name相当于函数名称.

    简单说apply是应用,call是调用。    
    用apply时,引擎自动搜索与当前select指定xpath的匹配节点相匹配的template(该template必须有属性match)并使用该template进行处理,此时需要指定的是select的path。 
    用call时就跟其它语言调用函数一样,必须指定name属性,相应的,该template必须有name属性,当然,也可以在这时with-param(当然相应的模板中有对应的param才行,不过这个不强制要求)。

    1)从名字区分:call-template,一次只对一个node名字有效;而apply-templates,注意是是复数,所以这个是对所有符合条件的node有效。
    2)从手法上:call-template,手段是通过name;apply-templates手段是通过match。

    3)使用apply调用的模板,   其中的上下文节点是与之匹配的节点。使用call调用的模板,   它没有上下文节点,参数通过param进行传递

    call-template的用法

    比如用到枚举型

    定义

    <xsl:call-template name="pollutionSource">
                      <xsl:with-param  name="source" select="ns1:PollutionSource"></xsl:with-param>
    </xsl:call-template>

    实现

    <xsl:template name="pollutionSource">
        <xsl:param name="source" />   
        <xsl:if test="$source=0">
          <xsl:text></xsl:text>
        </xsl:if>
        <xsl:if test="$source=1">
          <xsl:text></xsl:text>
        </xsl:if>
        <xsl:if test="$source=2">
          <xsl:text>生物</xsl:text>
        </xsl:if>
        <xsl:if test="$source=3">
          <xsl:text></xsl:text>
        </xsl:if>
      </xsl:template>
  • 相关阅读:
    php&&页面静态化
    页面静态化处理-必须利用URL重写规则
    所有技术都是遵循最基本的原理
    技术就是一层窗户纸-于无声处看大神
    从大局着眼,从小事着手
    网站基本功-SQL注入基本介绍
    Win7下开启wifi热点少见的常用注意事项
    恶搞别人电脑输入百度网址出现搜狐的网站--关于Hosts文件一些运用
    关于windows下的dos和linux下的shell
    httpd_Vhosts文件的配置
  • 原文地址:https://www.cnblogs.com/tech-bird/p/3618075.html
Copyright © 2011-2022 走看看