Subject: RE: 2 Questions on message and whitespace
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 25 May 2005 08:56:54 +0100
|
> Hi
>
> I am trying to get rid of 
 in an attribute
> T58=" tt "
>
> I have tried
> <xsl:strip-space elements="comments"/>
strip-space has no effect on whitespace characters that are part of the same
node as non-whitespace characters. You haven't shown your source.
>
> and I am generating this attribute as
> <xsl:attribute name="T58"><xsl:value-of select="$dnode/comments"
> disable-output-escaping="yes"/></xsl:attribute>
disable-output-escaping is not allowed on xsl:attribute (there have been
drafts of XSLT 2.0 that allowed it, but no longer)
> the $dnode is a variable set to the entity that contains
> a comments element.
I don't understand. Entities are not part of the XPath data model, you can't
set a variable to an entity.
>
> I am not sure why I still get these characters.
So far, you haven't done anything that would remove them.
>
> Other attempts (that do not work):
> <xsl:attribute name="T58"><xsl:value-of
> select="translate("$dnode/comments",'
','')" /></xsl:attribute>
This should work.
>
> Working version:
> <xsl:variable name="comment"><xsl:value-of
> select="$dnode/comments"/></xsl:variable>
>
> <xsl:attribute name="T58"><xsl:value-of
> select="translate($comment,'
','')" disable-output-escaping="yes"
> /></xsl:attribute>
>
> I would appreciate why the working-version works.
No idea. There's some information missing.
Michael Kay
http://www.saxonica.com/
|