xsl-list
[Top] [All Lists]

RE: spacing issue

2005-06-04 10:24:31
You're using indent=yes, with the HTML output method, and you're using an
element in your result tree (insert) that isn't defined in HTML, so the
processor doesn't know what the rules are, and is making up its own.

If this happens with inline elements that are defined in the HTML spec, such
as span, then you have grounds for complaint. But if you're going to use
non-standard HTML, then you should either avoid using the HTML output
method, or avoid indent="yes".

Michael Kay
http://www.saxonica.com/ 



-----Original Message-----
From: Spencer Tickner [mailto:spencertickner(_at_)gmail(_dot_)com] 
Sent: 03 June 2005 23:00
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] spacing issue

Hi everyone, thank you all in advance for the help,

I am getting strange spaces in my output. A sample of my code 
is below:

XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
      <xsl:output method="html" indent="yes" 
omit-xml-declaration="yes"
encoding="ISO-8859-1" name="html"/>

<xsl:template match="/">
      <p class="sub">(<xsl:apply-templates
select="subsectionnumber"/>)&#xA0; <xsl:apply-templates
select="subsectiontext"/></p>
</xsl:template>

<xsl:template match="subsectionnumber">
      <xsl:apply-templates
select="text()|strong|a|graphic|em|sup|sub|u|insert|br|eacute|hr"/>
</xsl:template>

<xsl:template match="text()">
      <xsl:value-of select="."/>
</xsl:template>

<xsl:template match="insert">
      <p class="insert"><xsl:apply-templates/></p>
</xsl:template>

Sample xml

<subsectionnumber><insert>2</insert></subsectionnumber>
<subsectiontext>Here is some text for subsection 2</subsectiontext>

Output.

Without the insert tags in the above line everything is sweet as some
kind of sweet candy. However with insert in the xml (and any other
inline element) I get spaces around my subsectionnumber.

Example

Without <insert>

<p class="sub">(2)&nbsp; A bylaw passed by the board may be 
repealed,</p>

With <insert>

<p class="para">(
                                              
        <insert><span class="insert">t.1</span></insert>

                                      )
                      &nbsp;
                                              
            <insert><span class="insert">granting authorization to
members</span></insert>
                                      
         </p>


What I need?

Ok, so the code is ugly, I for one am not a stickler for beautifully
formatted code, however  I have to get rid of the extra space put in
by the browser for the carriage returns. ie ( t.1 ).

Any help would be great.

Spencer

--~------------------------------------------------------------------
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>
--~--





--~------------------------------------------------------------------
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>