[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Removing all line breaks in text nodes
Subject: Re: Removing all line breaks in text nodes
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Mon, 11 Sep 2006 11:10:28 +0200
|
Hi Mark,
Your examples are all broken up into several lines, I expect this is due
to the mail server. Let me repeat to clarify and test if I understand
you correctly:
-- FrameMaker:
<p>Some line
breaks in this
text on certain
defined widths</p>
-- You're required output (one line):
<p>Some line breaks in this text on certain defined widths</p>
Is that correct?
In that case it should be sufficient to use:
<xsl-template match="text()" />
<xsl:value-of select="normalize-space(.)" />
</xsl-template>
This is different from
match="text()[normalize-space(.)='']"
which will only select text nodes that are empty or filled with
whitespace only.
Cheers,
Abel Braaksma
http://abelleba.metacarpus.com
Mark Peters wrote:
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="'
'"/>
<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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|