2015-03-31 89 views
-1

我需要转义XML逃生 “<" and ">” 在XSL <input/>

这里的<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

你的问题不明确。 – 2015-03-31 16:03:47

回答

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> 
+2

附加信息:大括号称为[Attribute Value Template(AVT)](http://www.w3.org/TR/xslt#attribute-value-templates)。 – 2015-03-31 16:34:05