XSLT转义转义文本

时间:2016-09-08 14:58:31

标签: java xml xslt xml-parsing xslt-1.0

我是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">

0 个答案:

没有答案