Re: [xsl] Added whitespace

Subject: Re: [xsl] Added whitespace
From: "Kaarle Kaila" <kaarle.kaila@xxxxxx>
Date: Sat, 24 Apr 2004 21:59:56 +0300
Hi,

I am using libxml2 as my processor. It might be good to have an alternative
one for experiments.
Here is my complete xml-file with comma after </person> and </place>

<?xml version="1.0" encoding="UTF-8"?>
<raport type="D"><tables><table number="1">
<section type="MAIN" gen="1"><person sex="M">
<name><givenname>Kalle</givenname></name><notices>
<notice tag="NOTE">
<para>Erikoismerkkikoetta. Ensiksi henkilv <person
sex="U"><name><givenname>Kalle</givenname><surname>Kaila</surname></name></p
erson>, jonka perdssd piste ja sitten paikka <place>Bromarf</place>, jonka
perdssd piste. Lopussa on piste.</para>
</notice><notice
tag="OCCU"><para>Suunnittelija</para></notice></notices></person></section><
section type="CHIL" gen="2"><relation type="CHIL"><person
sex="F"><name><givenname>Camilla</givenname></name></person></relation></sec
tion></table></tables></raport>
===========
My xslt files are too big to add to the list but a few templates are:

<xsl:template match="text()">
<xsl:if test="local-name(..)!='givenname'">
<xsl:text> </xsl:text>
</xsl:if>
<xsl:value-of select="."/>
</xsl:template>

<xsl:template match="notice">
<xsl:text> </xsl:text>
<xsl:value-of select="@text"/>
<xsl:if test="@text">
<xsl:text> </xsl:text>
</xsl:if>
<xsl:apply-templates/>
<xsl:if test="@source != ''">
<xsl:variable name="sname" select="@source"/>
<a href="sources.html#S{$sname}" target="idx">[<xsl:value-of
select="@source"/>]</a>
</xsl:if>
<xsl:if test="substring(.,string-length())!='.'">
<xsl:text>.</xsl:text>
</xsl:if>
</xsl:template>

==============
the resulting html looks like this:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>suku-testiraportti</title>
<link href="tables.css" rel="stylesheet" type="text/css">
</head>
<body>
<a name="T1"></a><div class="hdr">Taulu 1</div>
<div class="table">
<p>I.
<span class="name"> Kalle</span>  Erikoismerkkikoetta. Ensiksi henkilv <span
class="name"> Kalle  Kaila</span> , jonka perdssd piste ja sitten paikka
Bromarf , jonka perdssd piste. Lopussa on piste.  Suunnittelija.</p>II
Lapset<div class="child"><span class="name"> Camilla</span></div>
</div>
</body>
</html>

=========
The problem now is the whitespace after Bromarf  and after the Kaila</span>
before the comma.
place does not have any specific template but name tags have.


----- Original Message ----- 
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Saturday, April 24, 2004 9:17 PM
Subject: Re: [xsl] Added whitespace


At 2004-04-24 20:48 +0300, Kaarle Kaila wrote:
>I have an xml-structure that contains mixed text like this. The comma is
>after the place element
>and it is transformed using the default rules as I have no template for
>place.

The evidence you show does not indicate this to be true:

>sitten paikka <place>Bromarf</place>,  jonka perdssd pilkku
>
>The result in html is
>
>  ja sitten paikka  Bromarf , jonka perdssd pilkku
>
>-------------
>I have a similar case where I have a template for the element with similar
>result.
>How can I avoid the whitespace between Bromarf and the comma?

The Recommendation does not provide for those spaces you are
witnessing.  You do not say which processor you are using, but the evidence
as presented is that your processor is not conforming to the spec.

Section 5.8 of the spec explicitly indicates that no spaces are to be added:

   <xsl:template match="*|/">
     <xsl:apply-templates/>
   </xsl:template>

So it sounds like a bug in your processor or there is a template rule in
your stylesheet that is catching the element and adding the spaces to the
result tree.  Check for a template rule that matches all elements.

I hope this helps.

.................... Ken

--
Public courses: Spring 2004 world tour of hands-on XSL instruction
Each week:   Monday-Wednesday: XSLT/XPath; Thursday-Friday: XSL-FO

Hong Kong May 17-21; Bremen Germany May 24-28; Helsinki June 14-18

World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread