[XML-SIG] [ pyxml-Bugs-452113 ] 4XSLT: Pb with non blank spaces.

noreply@sourceforge.net noreply@sourceforge.net
Fri, 17 Aug 2001 08:14:21 -0700


Bugs item #452113, was opened at 2001-08-17 08:14
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=106473&aid=452113&group_id=6473

Category: 4Suite
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Logilab (ornicar)
Assigned to: Nobody/Anonymous (nobody)
Summary: 4XSLT: Pb with non blank spaces.

Initial Comment:
We are using here version 11.1beta3 of 4XSLT on RedHat
6.2 operating system and I've just found something that
looks like a bug:

Consider this very simple xml file:

<?xml version="1.0" encoding="ISO-8859-1"?>
<root/>

and this xslt file:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html"
            version="4.0" 
            encoding="ISO-8859-1" 
            indent="yes" 
            doctype-public="-//W3C//DTD HTML 4.0//EN"/>

<xsl:template match="/">
  <html>
    <head/>
    <body>
      <p>&#160;</p>
      <p> &#160;</p>
      <p>&#160; </p>
      <p> &#160;*</p>
      <p>*&#160; </p>
      <p>*&#160;*</p>
      <p>*</p>
      <table width="100%" border="1">
       <tr>
        <td bgcolor="blue">&#160;</td>
        <td bgcolor="blue"> &#160;</td>
        <td bgcolor="blue">&#160; </td>
        <td bgcolor="blue"> &#160;*</td>
        <td bgcolor="blue">*&#160; </td>
        <td bgcolor="blue">*&#160;*</td>
        <td bgcolor="blue">*</td>
       </tr>
      </table>
    </body>
  </html>
</xsl:template>
</xsl:stylesheet>


After transforming the XML file with this XSL
Transformation, I should get something like:
...
    <p>&nbsp;</p>
    <p> &nbsp;</p>
    <p>&nbsp; </p>
...
        <td bgcolor='blue'>&nbsp;</td>
        <td bgcolor='blue'> &nbsp;</td>
        <td bgcolor='blue'>&nbsp; </td>
...

Nevertheless, I get the following result:
...
    <p></p>
    <p></p>
    <p></p>
    <p> &nbsp;*</p>
    <p>*&nbsp; </p>
    <p>*&nbsp;*</p>
    <p>*</p>
    <table width='100%' border='1'>
      <tr>
        <td bgcolor='blue'></td>
        <td bgcolor='blue'></td>
        <td bgcolor='blue'></td>
        <td bgcolor='blue'> &nbsp;*</td>
        <td bgcolor='blue'>*&nbsp; </td>
        <td bgcolor='blue'>*&nbsp;*</td>
        <td bgcolor='blue'>*</td>
      </tr>
    </table>
...

Thus the &#160; character which should be always
replaced with &nbsp; is considered as a space character
and is only displayed if the string contains another
non-space character (e.g. *).

This is quite annoying because &#160; is widely use in
HTML to have empty coloured cells in a table.

Regards,

  O. CAYROL.

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=106473&aid=452113&group_id=6473