This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: HTML tag inside <xsl:when></xsl:when> tag


[Matts Isuls]>
> How do i go about writing a HTML tag inside a xsl:when. Have tried three
> different ways:
>
> <xsl:choose>
>   <xsl:when test="ss:Data/@ss:Type = 'Number'">
>     <td align="right">
>   </xsl:when>
>   <!--snip-->
> </xsl:choose>
>
> ^-no go
>
> <xsl:choose>
>   <xsl:when test="ss:Data/@ss:Type = 'Number'">
>     <xsl:text><td align="right"></xsl:text>
>   </xsl:when>
>   <!--snip-->
> </xsl:choose>
>
> ^-still nothing
>
> <xsl:choose>
>   <xsl:when test="ss:Data/@ss:Type = 'Number'">
>     &#60;td align="right"&#62;
>   </xsl:when>
>   <!--snip-->
> </xsl:choose>
>
> ^-hmmm now what?
>
>

What you have to keep in mind is that you are writing well-formed xml, even
if you will produce html at the end.  When you put a start tag within
another element, in this case xsl:when, the close tag for that element has
to be nested properly within that element as well.  There is no way around
that, since it is an inherent characteristic of xml (I won't talk about
faking it with disable-output-escaping, which will not be needed here in any
way, shape, or form).

Some people can see this more easily by thinking about the tree that is
constructed by the processor- each node may contain other nodes.  A node
cannot contain part of another node - it's all or nothing.  The xsl:when can
either contain a whole, intact td element or not, but it cannot contain half
of a td element.

You just have to rearrange your thinking a little and get the end tag for
the <td> into the same parent element.  If you think that you need to split
the element, you do not yet understand clearly what you really want to
accomplish, but it should quickly get clear.

Cheers,

Tom P


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]