以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  XSLT跨模板取值  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=71133)


--  作者:geek007
--  发布时间:1/5/2009 3:16:00 PM

--  XSLT跨模板取值
如题 我想在TemInfo中获取TemSchoolInfo 的Region该怎么做?

<xsl:template match="/DocumentElement/wp0003.getSchoolContactInformation" name="TemSchoolInfo">
    <link rel="stylesheet" type="text/css" href="/_layouts/SchoolInfo_Resources/SchoolInfo_Xslt.css"/>
    <table class="infotable">
      <tr>
        <td colspan="2" class="tdinfotitle">
          Contact Us
        </td>
      </tr>
      <xsl:if test="Region!=''">
        <tr>
          <td class="p_left">Region:</td>
          <td>
            <xsl:value-of select="Region" />
          </td>
        </tr>
      </xsl:if>
    </table>
  </xsl:template>

  <xsl:template match="/DocumentElement/wp0003.getSchoolStaffInfo" name="TemInfo">
     <table class="infotable">
      <xsl:if test="VicePrincipalName!=''">
        <tr>
          <td class="p_left">Vice Principal:</td>
          <td>
            <xsl:value-of select="VicePrincipalName"></xsl:value-of>
          </td>
        </tr>
      </xsl:if>
      <tr>
        <td class="p_left">SchoolRegion:</td>
        <td>
          获取Region
        </td>
      </tr>
    </table>
  </xsl:template>


--  作者:Qr
--  发布时间:1/5/2009 3:43:00 PM

--  
在模板TemSchoolInfo中通过<xsl:call-template>来调用模板TemInfo,即可通过<xsl:with-param>向TemInfo传值,在模板TemInfo顶行加入<xsl:param>来接收传来Region值。
--  作者:geek007
--  发布时间:1/5/2009 4:53:00 PM

--  
这样取还是不行呢
<xsl:template match="/DocumentElement/wp0003.getSchoolContactInformation" name="TemSchoolInfo">
    <link rel="stylesheet" type="text/css" href="/_layouts/SchoolInfo_Resources/SchoolInfo_Xslt.css"/>
    <table class="infotable">
      <tr>
        <td colspan="2" class="tdinfotitle">
          Contact Us
        </td>
      </tr>
      <xsl:if test="Region!=''">
        <tr>
          <td class="p_left">Region:</td>
          <td>
            <xsl:value-of select="Region" />
          </td>
        </tr>
      </xsl:if>
    </table>
    <xsl:call-template name="TemInfo">
      <xsl:with-param name="param" select="Region"></xsl:with-param>
    </xsl:call-template>

  </xsl:template>

  <xsl:template match="/DocumentElement/wp0003.getSchoolStaffInfo" name="TemInfo">
   <xsl:param name="param"></xsl:param>
     <table class="infotable">
      <xsl:if test="VicePrincipalName!=''">
        <tr>
          <td class="p_left">Vice Principal:</td>
          <td>
            <xsl:value-of select="VicePrincipalName"></xsl:value-of>
          </td>
        </tr>
      </xsl:if>
      <tr>
        <td class="p_left">SchoolRegion:</td>
        <td>
          获取Region
         <xsl:value-of select="$param"></xsl:value-of>
        </td>
      </tr>
    </table>
  </xsl:template>


--  作者:geek007
--  发布时间:1/5/2009 5:10:00 PM

--  
是想把Region取出来放在VicePrincipalName的后面
--  作者:Qr
--  发布时间:1/5/2009 5:36:00 PM

--  
测试代码没什么大问题,不过下面一行似乎路径表示不是很准确,可能导致无法正确转换而页面无显示。
<xsl:template match="/DocumentElement/wp0003.getSchoolContactInformation" name="TemSchoolInfo">
--  作者:geek007
--  发布时间:1/5/2009 5:47:00 PM

--  
楼上的请指教啊,该怎么处理,才能达到我要的效果
xml、xslt在这里
http://topic.csdn.net/u/20090105/14/88c07540-84eb-4bc2-a08c-f750725c3ef3.html?seed=1134003875
--  作者:Qr
--  发布时间:1/6/2009 12:10:00 PM

--  
包括CSDN这个贴子,都是偶回的,测试说明模板可以正常取得结果,但的确不明白你要做什么。如果是页面格式控制,那就不是XSL的问题,而是HTML了。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
93.750ms