I'm trying to get XUL output with an element that has an attribute
containing an entity reference. Can this be done? I saw another post
exactly like this...but the solutions they gave didn't work for me.
[-------------XML------------]
<contextMenu>
<building />
<contact/>
<company/>
</contextMenu>
[-----------XSL---------------]
...
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1"
indent="yes"/>
....
<xsl:template match="contextMenu">
<menuitem>
<xsl:attribute name="label" disable-output-escaping="yes">
&context.add.<xsl:value-of select="name()" class="text" />;
</xsl:attribute>
</menuitem>
<xsl:template>
<building />
<contact/>
<company/>
</contextMenu>
[-----------expected XUL---------------]
...
<menuitem label="&context.add.building;">
<menuitem label="&context.add.contact;">
<menuitem label="&context.add.company;">
[-----------actual XUL---------------]
...
<menuitem label="&context.add.building;">
<menuitem label="&context.add.contact;">
<menuitem label="&context.add.company;">
> I'm trying to get XUL output with an element that has an attribute
> containing an entity reference. Can this be done? I saw another post
> exactly like this...but the solutions they gave didn't work for me.
> <xsl:attribute name="label" disable-output-escaping="yes">
> &context.add.<xsl:value-of select="name()" class="text" />;
> </xsl:attribute>
Unfortunately disable-output-escaping doesn't work on attributes:
"It is an error for output escaping to be disabled for a text node that
is used for something other than a text node in the result tree. Thus,
it is an error to disable output escaping for an xsl:value-of or
xsl:text element that is used to generate the string-value of a comment,
processing instruction or attribute node;"
You can do this with XSLT 2.0, can you use XSLT 2.0?
--
Oleg Tkachenko [XML MVP, MCPD]
http://blog.tkachenko.com | http://www.XmlLab.Net | http://www.XLinq.Net
Then your only option probably is to build XML element entirely as text.
Something crazy like this:
<xsl:text disable-output-escaping="yes"><menuitem
label="&context.add.</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>;"></xsl:text>
<xsl:text disable-output-escaping="yes"></menuitem></xsl:text>