我是xslt的新手。并且不明白如何防止在输入中转义转义文本,因为内部解析器已经发送了转义的html。
例如,我输入了一串非ISO-8859-1编码,例如“čč”。内部解析器将其转义为čč并发送给xsl作为čč但是xslt解析器转换为& amp;#269;& amp;#269;最后在页面上我可以看到čč但我想要čč。
请帮帮我:)。
用于创建textfield的Xslt代码,.. / .. / .. / Value / TextFieldValue [TextField / textFieldID = $ textFieldID] / value它已经是转义文本,xslt解析器再次转义。
<xsl:template name="createTextField">
<xsl:param name="id" select="null"/>
<xsl:param name="name" select="null"/>
<xsl:param name="type" select="'text'"/>
<xsl:param name="class" select="null"/>
<xsl:param name="disabled" select="null"/>
<xsl:param name="maxlength" select="null"/>
<xsl:param name="readonly" select="null"/>
<xsl:param name="title" select="''"/>
<xsl:param name="placeholder" select="null"/>
<xsl:param name="value" select="''"/>
<xsl:param name="element" select="null"/>
<xsl:param name="size" select="''"/>
<xsl:param name="min" select="''"/>
<xsl:param name="max" select="''"/>
<xsl:param name="width" select="'99%'"/>
<xsl:param name="requestparameters" select="requestparameters"/>
<input type="{$type}">
<xsl:if test="$id">
<xsl:attribute name="id">
<xsl:value-of select="$id"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$name">
<xsl:attribute name="name">
<xsl:value-of select="$name"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$class">
<xsl:attribute name="class">
<xsl:value-of select="$class"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$disabled != ''">
<xsl:attribute name="disabled">
<xsl:value-of select="'true'"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$maxlength">
<xsl:attribute name="maxlength">
<xsl:value-of select="$maxlength"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$readonly">
<xsl:attribute name="readonly">
<xsl:value-of select="'true'"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$size != ''">
<xsl:attribute name="size">
<xsl:value-of select="$size"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$size = '' and $width != ''">
<xsl:attribute name="style">
<xsl:text>width: </xsl:text><xsl:value-of select="$width"/><xsl:text>;</xsl:text>
</xsl:attribute>
</xsl:if>
<xsl:if test="$type = 'number' and $min != ''">
<xsl:attribute name="min">
<xsl:value-of select="$min"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$type = 'number' and $max != ''">
<xsl:attribute name="max">
<xsl:value-of select="$max"/>
</xsl:attribute>
</xsl:if>
<xsl:attribute name="value">
<xsl:choose>
<xsl:when test="not($disabled) and $requestparameters">
<xsl:value-of select="$requestparameters/parameter[name=$name]/value"/>
</xsl:when>
<xsl:when test="$element/*[name()=$name]">
<xsl:value-of select="$element/*[name()=$name]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:if test="$title != ''">
<xsl:attribute name="title" >
<xsl:value-of select="$title"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$placeholder">
<xsl:attribute name="placeholder" >
<xsl:value-of select="$placeholder"/>
</xsl:attribute>
</xsl:if>
</input>
</xsl:template>
使用的Xslt模板:
<xsl:attribute name="value">
<xsl:choose>
<xsl:when test="not($disabled) and $requestparameters">
<xsl:value-of select="$requestparameters/parameter[name=$name]/value"/>
</xsl:when>
<xsl:when test="$element/*[name()=$name]">
<xsl:value-of select="$element/*[name()=$name]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
这是解决方案不起作用
<input type="text" name="subject" id="subject" value="20">