Re: [xsl] Empty object

Subject: Re: [xsl] Empty object
From: scott gabelhart <swgabel@xxxxxxxxxxxx>
Date: Tue, 27 Jan 2004 19:50:12 -0500
Michael Kay wrote:

input xml file contains elements that are not empty but contain &nbsp;



Thanks. This is becoming clearer.


<OBJECT>&nbsp;</OBJECT> This nonbreaking space character is needed to keep the space in this element.



How is the nbsp entity defined in your DTD?


When I run my transform the XHTML output contains <OBJECT>nbsp;</OBJECT> which of course is wrong. I need the final XHTML output to contain <OBJECT>&nbsp;</OBJECT>.



I can tell you what's wrong with your XSL code if you show me your XSL code.

You shouldn't need to do anything. The default action on text nodes is
to copy them unchanged, and this will produce the right effect.

Michael Kay



What do I need to add to my transform to assure that when my OBJECT element contains a nonbreaking space character ; my transformed XHTML output contains <OBJECT>&nbsp;</OBJECT>.

- Scott

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





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




Michael,

I have included my xsl code and I am using a schema not a DTD.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<!--xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/-->
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
<head>
<title>YOU ROCK</title>
</head>
<body>
<xsl:apply-templates select="//FORMATTED/TABLE"/>
</body>
</html>
</xsl:template>
<xsl:template match="TABLE">
<table>
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="name() = 'BORDER'">
<xsl:attribute name="border"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'CELLSPACING'">
<xsl:attribute name="cellspacing"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'CELLPADDING'">
<xsl:attribute name="cellpadding"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'WIDTH'">
<xsl:attribute name="width"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'STYLE'">
<xsl:attribute name="style"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="DPROW">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="OBJECT">
<!--xsl:preserve-space elements="*"/-->
<td>
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="name() = 'ALIGN'">
<xsl:attribute name="align"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'STYLE'">
<xsl:attribute name="style"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'WIDTH'">
<xsl:attribute name="width"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'HEIGHT'">
<xsl:attribute name="height"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'NAME'">
<xsl:attribute name="name"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'TYPE'">
<xsl:attribute name="type"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'VALIGN'">
<xsl:attribute name="valign"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'COLSPAN'">
<xsl:attribute name="colspan"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
<xsl:when test="name() = 'ROWSPAN'">
<xsl:attribute name="rowspan"><xsl:value-of select="."/></xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:apply-templates />
</td>
</xsl:template>
</xsl:stylesheet>



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



Current Thread