传递参数似乎不起作用

时间:2013-12-06 08:46:44

标签: xslt-1.0

我需要将一个参数发送到模板,以帮助处理外部第二个xml文件中的正确节点(这样可以减少模板的数量)。

我发现以下代码发送参数并正确处理它:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>

<xsl:template match="/">
      This is text1
      <xsl:apply-templates mode="my-mode">
        <xsl:with-param name="testParam" select="'TEST_PARAMETER'"/>
      </xsl:apply-templates>
      This is text2
 </xsl:template>

 <xsl:template match="DialStats" mode="my-mode">
  <xsl:param name="testParam" />
   <br></br>
   This is text 3<br></br>
     <xsl:value-of select="$testParam" /><br></br>
   This is text 4<br></br>
 </xsl:template>
</xsl:stylesheet>

当我实现第二个文件时,我发现以下内容不再传递参数:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
  This is text1
  <xsl:apply-templates select="document('file://D:/DATA/Marquee/DATA/MarqueeStats.xml')" mode="my-mode">
    <xsl:with-param name="testParam" select="'TEST_PARAMETER'"/>
  </xsl:apply-templates>
  This is text2
</xsl:template>

<xsl:template match="DialStats" mode="my-mode">
  <xsl:param name="testParam" />
  <br></br>
  This is text 3<br></br>
  <xsl:value-of select="$testParam" /><br></br>
  This is text 4<br></br>
 </xsl:template>

它正确地调用了模板,因为我可以看到两行“这是文本x”。所以参数消失了。我确实找到了一些建议匹配=需要设置的文章,所以我将其与xml root:

<DialStats>
  <Countries Country="Denmark">
    <Products Product="MR">
    . . . 

有关如何解决此问题的任何建议?

BTW这只是我需要正确的基础知识,因为需要添加更多代码。

0 个答案:

没有答案