Subject: Re: [xsl] Problem with Output special char in HTML attribute From: Robert Koberg <rob@xxxxxxxxxx> Date: Tue, 07 Dec 2004 09:59:42 -0800 |
<jspp:outputElement name="a"> <jspp:outputAttribute name="href"> <jspp:concat str_value="next-page.jsp?id="/> <jspp:concat var_value="id"/> </jspp:outputAttribute> </jspp:outputElement>
<xsl:template match="jspp:outputElement"> out.print("<xsl:text disable-output-escaping="yes"><</xsl:text>"); out.print("<xsl:value-of select="@local_name"/>"); <xsl:apply-templates select="jspp:outputAttribute" mode="attrOut"/> out.print("<xsl:text disable-output-escaping="yes">></xsl:text>"); <xsl:apply-templates/> out.print("<xsl:text disable-output-escaping="yes"><</xsl:text>/"); out.print("<xsl:value-of select="@local_name"/>"); out.print("<xsl:text disable-output-escaping="yes">></xsl:text>"); </xsl:template>
<xsl:template match="jspp:outputAttribute" mode="attrOut"> <xsl:choose> <xsl:when test="boolean(@name)"> out.print(" "); out.print("<xsl:value-of select="@name"/>"); out.print("='"); <xsl:choose> <xsl:when test="boolean(@str_value)"> out.print("<xsl:value-of select="@str_value"/>"); </xsl:when> <xsl:when test="boolean(@var_value)"> out.print(<xsl:value-of select="@var_value"/>); </xsl:when> <xsl:otherwise> out.print(<xsl:apply-templates/>); </xsl:otherwise> </xsl:choose> out.print("'"); </xsl:when> <xsl:otherwise> <xsl:apply-templates mode="attrOut"/> </xsl:otherwise> </xsl:choose> </xsl:template>
<xsl:if test="preceding-sibling::jspp:concat"> <xsl:text> + </xsl:text> </xsl:if> <xsl:choose> <xsl:when test="boolean(@str_value)"> <xsl:text>"</xsl:text> <xsl:value-of select="@str_value"/> <xsl:text>"</xsl:text> </xsl:when> <xsl:when test="boolean(@var_value)"> <xsl:value-of select="@var_value"/> </xsl:when> </xsl:choose>
best, -Rob
Hi at all, i've a problem with outputting special chars with xsl, particularly given the following :
<a href="#" tabindex="<?=$tabindex++?>">
rather i want to generate all my link tags with dynamic tabindex attribute. In xsl i have
<xsl:stylesheet ........ <xsl:output method="html"/> ...... ...... <a href=#" tabindex="<?$tabindex++?>">......</a> ..... ..... </xsl:stylesheet>
but the output produced is :
<a href=#" tabindex="<?$tabindex++?>">....</a>
that is not good because HTML page produced can't be execute served-side while all php-let are printed in HTML page. I tried in this way too:
<a href=#"> <xsl:attribute name="tabindex"> <xsl:text disable-output-escaping="yes"><?$tabindex++?></xsl:text> </xsl:attribute> </a>
but i obtain same result. Note that if i put <xsl:text disable-output-escaping="yes"><?$tabindex++?></xsl:text>
on xsl not inside attribute, i get correct result. I think problem
concerne special chars inside attribute, problably there must be a
method that i dont'know to put correctly special chars in attribute
value.
Please help me, i'm in trouble. ANy kind of help is granted. regards, Mulp.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Problem with Output speci, David Carlisle | Thread | [xsl] xsl:preceding - only display , dmitrik |
Re: [xsl] Problem with Output speci, David Carlisle | Date | RE: [xsl] Problem with Output speci, Michael Kay |
Month |