This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: normalize-space(me)


At 11:05 AM 6/17/2002, David wrote:
I think you just want
<xsl:template match="*"/>
 <xsl:copy>
  <xsl:apply-templates/>
 </xsl:copy>
</xsl:template>

<xsl:template match="text()">
 <xsl:value-of select="translate(.',&#10;,&#9;',  ')"/>
</xsl:template>
This answer is the best, I think.

The problem with normalizing space on all text nodes is that it turns

<TITLE>This is
<S>not</S> a
normal title</TITLE>

Into

<TITLE>This is<S>not</S>a normal title</TITLE>

which won't do.

The alternative to David's translate() -- thinkable in some situations, and having the virtue of collapsing runs of spaces -- is to normalize, then put back spaces around inline elements like <S> above. The problem with this technique is knowing when to put them back and when not to: sometimes the heuristics can get pretty hairy, and sometimes (for example if you're using subscripts to do things like H<sub>2</sub>O) impossible.

Cheers,
Wendell


======================================================================
Wendell Piez mailto:wapiez@mulberrytech.com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]