xsl-list
[Top] [All Lists]

Re: broken text surrounding an entity I want to drop?

2005-09-13 00:07:34
Hi,

Tempore 04:50:55, die 09/13/2005 AD, hinc in 
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit Trevor Nicholls 
<trevor(_at_)castingthevoid(_dot_)com>:

My source XML file contains a myriad of <A id=something></A> entities which
for the most part I wish to drop. I am using an identity template plus the
following to do this:

-----
<!-- drop A tags which have no content -->
<xsl:template match="A">
<xsl:if test="* or text() or string(.)">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>
-----

Unfortunately and unsurprisingly this is too naïve; it drops the <a> tags OK
but leaves me with broken text.

A small change that the solution is as simple as adding this template to your 
stylesheet:

<xsl:template match="text()">
        <xsl:value-of select="normalize-space(.)"/>
</xsl:template>

If this gives complications with wanted whitespace, tweak this template a bit. 
Maybe to only let it chop of leading or trailing newlines and/or to only let it 
match 'text' nodes adjacent to 'A' elements.

regards,
--
Joris Gillis (http://users.telenet.be/root-jg/me.html)
«Et ipsa scientia potestas est»  - Francis Bacon , Meditationes sacrae

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--