xsl-list
[Top] [All Lists]

Re: Added whitespace

2004-04-24 11:59:56
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 henkilö <person
sex="U"><name><givenname>Kalle</givenname><surname>Kaila</surname></name></p
erson>, jonka perässä piste ja sitten paikka <place>Bromarf</place>, jonka
perässä 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 henkilö <span
class="name"> Kalle  Kaila</span> , jonka perässä piste ja sitten paikka
Bromarf , jonka perässä 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(_at_)CraneSoftwrights(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
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 perässä pilkku

The result in html is

 ja sitten paikka  Bromarf , jonka perässä 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(_at_)CraneSoftwrights(_dot_)com
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


--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--



<Prev in Thread] Current Thread [Next in Thread>