string
  • variables
  • xslt
  • string-concatenation
  • 2013-05-21 40 views 0 likes 
    0

    我想看到的第一對夫婦的變量「VARI」的人物要連接到的字符串ABC =」在這裏:如何連接(的一部分)變量字符串在XSLT

    href="{concat('abc=', substring-before('vari', '='))}" 
    

    這裏整個片段:

    <xsl:template match="report:subelement"> 
        <tr> 
         <td> 
          <message> 
           <xsl:variable name="vari" select="."></xsl:variable> 
            <xsl:copy-of select="." /> 
          </message> 
         </td> 
         <td> 
          <button type="button" onclick="window.location.href=this.getAttribute('href')" href="{concat('abc=', substring-before('vari', '='))}" >Kill thread</button> 
         </td> 
        </tr> 
    </xsl:template> 
    

    這可能是一個微不足道的問題,但我只是在學習xslt。

    回答

    0

    您非常接近,但是: 要訪問變量的值,您必須使用一美元($)作爲前綴。不要把變量名放在撇號中。
    因此嘗試:因爲你的變量聲明是不是在相同的上下文中使用

    href="{concat('abc=', substring-before($vari, '='))} 
    

    比這將拋出一個錯誤。 變量聲明必須位於相同的元素或祖先中。將聲明放在子元素模板的頂部或<tr元素中。

    更新工作模板:

    <xsl:template match=""report:subelement"> 
        <xsl:variable name="vari" select="."></xsl:variable> 
        <tr> 
         <td> 
          <message> 
           <xsl:copy-of select="." /> 
          </message> 
         </td> 
         <td> 
          <button type="button" onclick="window.location.href=this.getAttribute('href')" 
            href="{concat('abc=', substring-before($vari, '='))}" >Kill thread</button> 
         </td> 
        </tr> 
    </xsl:template> 
    
    +0

    感謝,但如果我聲明一個變量怎麼能值以後分配給它? –

    +0

    你不能。變量的值不可更改。也許你應該用更完整的例子更新你的問題。 –

    +0

    然後我不明白。如果我不能分配一個值,那我以後可以讀取什麼? –

    相關問題