[xsl] Removing all line breaks in text nodes

Subject: [xsl] Removing all line breaks in text nodes
From: "Mark Peters" <flickrmeister@xxxxxxxxx>
Date: Sat, 9 Sep 2006 18:09:47 -0400
Hi,

When Adobe FrameMaker saves documents as XML files, it seems to break
lines at a defined width.

For example:

<p>This sample text node illustrates how FrameMaker introduces
line breaks at pre-defined widths. If this were a real piece of content,
it would contain interesting or useful information. However it's just an
example paragraph. I'll add one more line here for good measure, and
will then simply quit.</p>

I'd like to remove all line breaks using XSLT 1.0, if possible. The
resulting XML would look like the following:

<p>This sample text node illustrates how FrameMaker introduces line
breaks at pre-defined widths. If this were a real piece of content, it
would contain interesting or useful information. However it's just an
example paragraph. I'll add one more line here for good measure, and
will then simply quit.</p>

I've tried several normalizing templates from Dave Pawson's site
(http://www.dpawson.co.uk/xsl/sect2/normalise.html), such as the
following:

	<xsl:template match="*">
		<xsl:param name="indent" select="'&#xA;'"/>
		<xsl:value-of select="$indent"/>
		<xsl:copy>
			<xsl:copy-of select="@*"/>
			<xsl:apply-templates>
				<xsl:with-param name="indent" select="concat($indent, $indent-increment)"/>
			</xsl:apply-templates>
			<xsl:if test="*">
				<xsl:value-of select="$indent"/>
			</xsl:if>
		</xsl:copy>
	</xsl:template>
	<xsl:template match="comment()|processing-instruction()">
		<xsl:copy/>
	</xsl:template>

- and -

<xsl:template match="text()[normalize-space(.)='']"/>

I've also tried removing the line breaks using XMLTidy, without success.

I'd appreciate any suggestions.

Thanks.

Mark Peters
Senior Technical Writer
Saba Software

Current Thread