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

Subject: Re: [xsl] broken text surrounding an entity I want to drop?
From: "Joris Gillis" <roac@xxxxxxxxxx>
Date: Tue, 13 Sep 2005 09:07:34 +0200

Tempore 04:50:55, die 09/13/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Trevor Nicholls <trevor@xxxxxxxxxxxxxxxxxx>:

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:apply-templates select="@*|node()"/>

Unfortunately and unsurprisingly this is too naC/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(.)"/>

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.

Joris Gillis (
B+Et ipsa scientia potestas estB;  - Francis Bacon , Meditationes sacrae

Current Thread