逃避&#34;&lt;&#34;和&#34;&gt;&#34;在xsl <input />中

时间:2015-03-31 15:39:25

标签: xslt attributes escaping

我需要转义< XML内的><input/>

问题在于:

<input type="submit" 
       class="button" 
       value="Search" 
       formaction
       ="APage.aspx?Module=Module1&amp;XMLType=XMLType1&amp;Mode=Search&amp;SessionId=<xsl:value-of select="/../SESSIONID"/>">
</input> 

我尝试了&lt;SessionId=<xsl:value-of select="/../SESSIONID"/&gt;

它返回错误expecting /> before /../SESSIONID

1 个答案:

答案 0 :(得分:4)

在属性值中,您不能放置XSL标记或使用未转义的引号"(而是使用实体&quot;)。

您可以使用大括号{}在属性值中插入XPath表达式:

<input type="submit" class="button" 
    formaction="APage.aspx?Module=Module1&amp;XMLType=XMLType1&amp;Mode=Search&amp;SessionId={/../SESSIONID}" 
    value="Search"/> 

或使用xsl:attribute元素:

<input type="submit" class="button" 
    value="Search">
    <xsl:attribute name="formaction">APage.aspx?Module=Module1&amp;XMLType=XMLType1&amp;Mode=Search&amp;SessionId=<xsl:value-of select="/../SESSIONID)"/></xsl:attribute>
</input>