在 xslt 中的 roundrect 标记中使用 xsl:text 内的变量

Using a variable inside xsl:text in roundrect tag in xslt

我是 xslt 编码的新手,需要您的帮助。我正在使用 xslt 设计电子邮件模板,并使用样式创建了一个按钮。此按钮仅在接收方为 Microsoft outlook(mso) 时显示。以下是代码。请注意 v:roundrect 标签内的 href 属性。

<xsl:text disable-output-escaping="yes"><![CDATA[<!--[if gte mso 9]> <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{$URL}" style="height:37px;v-text-anchor:middle;width:190px;" arcsize="15%" stroke="f" fillcolor="#557d9a">
        <w:anchorlock/>
        <center style="color:#ffffff;font-family:Arial, sans-serif;font-size:13px;font-weight:bold;text-decoration: none;">
           Verify Email Address 
        </center>
    </v:roundrect> <![endif]-->]]> </xsl:text>

我使用了一个名为'URL'的变量,它是元素的值:

<xsl:variable name="URL">
      <xsl:value-of select="ASBMessage/LinkURL"/>
    </xsl:variable>

然而,出现的输出并不像预期的那样。变量 url 值没有出现,而 {$URL}' 出现在按钮后面。知道如何在这种情况下使用变量值吗?

你不能在<xsl:text>中使用变量,你必须终止</xsl:text>,然后放置<xsl:value-of select="$URL"/>,然后继续文本。

这样写...

<xsl:text disable-output-escaping="yes"><![CDATA[<!--[if gte mso 9]>]]></xsl:text>
<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{$URL}" style="height:37px;v-text-anchor:middle;width:190px;" arcsize="15%" stroke="f" fillcolor="#557d9a">
    <w:anchorlock/>
    <center style="color:#ffffff;font-family:Arial, sans-serif;font-size:13px;font-weight:bold;text-decoration: none;">
       <xsl:text>Verify Email Address</xsl:text> 
    </center>
</v:roundrect> 
<xsl:text disable-output-escaping="yes"><![CDATA[<![endif]-->]]></xsl:text>