You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Sreedhar Chintalapaty <sc...@ptc.com> on 2002/03/17 17:33:46 UTC
RE: [OT] uneven tags inside XSLT conditionals
Tom,
It's not clear what how you want to differentiate between when and
otherwise, so my answer may be way off; however, if you want to
differentiate at the cell (<td>) level, then try with the <tr> tags outside
the test:
<tr>
<xsl:when test="position() mod 2">
<td>
<xsl:value-of select="@name"/>
</td>
</xsl:when>
<xsl:otherwise>
<td>
<xsl:value-of select="@name"/>
</td>
</xsl:otherwise>
</tr>
HTH,
Sreedhar
-----Original Message-----
From: tvon@etria.org [mailto:tvon@etria.org]
Sent: Sunday, March 31, 2002 11:16 AM
To: cocoon-users@xml.apache.org
Subject: [OT] uneven tags inside XSLT conditionals
Hey,
I've done some googling and I cant find the answer to this.
I basically want to do:
<xsl:choose>
<xsl:when test="position() mod 2">
<tr>
<td>
<xsl:value-of select="@name"/>
</td>
</xsl:when>
<xsl:otherwise>
<td>
<xsl:value-of select="@name"/>
</td>
</tr>
</xsl:otherwise>
</xsl:choose>
So basically there will be two columns of @name printed. The problem with
this setup is that the <tr> and </td> make the whole thing
malformed/invalid due to the broken nesting. Is there a way to get around
this, or maybe a more "proper" way of achieving the same end?
-Tom
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>
RE: [OT] uneven tags inside XSLT conditionals
Posted by Vadim Gritsenko <va...@verizon.net>.
You should rephrase your loop as two loops. In java it would be:
for(int i=0; i<count; i+=columns){
<tr>
for(int j=0; j<columns & element-exist; j++){
<td>
<element/>
</td>
}
</tr>
}
This is possible in XSLT.
Regards,
Vadim
> From: tvon@etria.org [mailto:tvon@etria.org]
>
> On Sun, Mar 17, 2002, Sreedhar Chintalapaty wrote:
> > Tom,
> >
> > It's not clear what how you want to differentiate between when and
> > otherwise, so my answer may be way off; however, if you want to
> > differentiate at the cell (<td>) level, then try with the <tr> tags
outside
>
> Sorry I wasnt clear.
>
> the "position() mod 2" will ring true for odd numbers, and false for
even
> numbers....or the other way around (I always get confused about
that)..
>
> Point is, given a list of X elements, I want to render them as such:
>
> X1 X2
> X3 X4
> X5 X6
> X7 X8
> X...
>
> So, if position() is odd (left column) render this part:
>
> <tr>
> <td>Some odd X</td>
>
> And since the next one will be even, it will close the row:
>
> <td>Some even X</td>
> </tr>
>
>
> Basically, the only difference is the <tr> on the odd side, and the
</tr>
> on the even side.
>
> I do not just want this for 2 column rows though, I'd like to be able
to
> use "position() mod 4" (for example) to give each row 4 columns.....so
> basically at some point I need something like:
>
> <xsl:if test="some condition">
> </tr>
> </xsl:if>
>
> and the same with <tr>, the problem is that cause the <tr> </tr> tags
to be
> in strange places and it fouls up the nesting, which causes XSLT
errors....
>
>
> Does that make any more sense? I could explain it in 30 seconds if I
had a
> napkin and a pen.
>
> :)
>
> -Tom
>
>
>
>
> > the test:
> >
> > <tr>
> > <xsl:when test="position() mod 2">
> > <td>
> > <xsl:value-of select="@name"/>
> > </td>
> > </xsl:when>
> > <xsl:otherwise>
> > <td>
> > <xsl:value-of select="@name"/>
> > </td>
> > </xsl:otherwise>
> > </tr>
> >
> > HTH,
> >
> > Sreedhar
> >
> >
> > -----Original Message-----
> > From: tvon@etria.org [mailto:tvon@etria.org]
> > Sent: Sunday, March 31, 2002 11:16 AM
> > To: cocoon-users@xml.apache.org
> > Subject: [OT] uneven tags inside XSLT conditionals
> >
> >
> > Hey,
> >
> > I've done some googling and I cant find the answer to this.
> >
> > I basically want to do:
> >
> > <xsl:choose>
> > <xsl:when test="position() mod 2">
> > <tr>
> > <td>
> > <xsl:value-of select="@name"/>
> > </td>
> > </xsl:when>
> > <xsl:otherwise>
> > <td>
> > <xsl:value-of select="@name"/>
> > </td>
> > </tr>
> > </xsl:otherwise>
> > </xsl:choose>
> >
> >
> > So basically there will be two columns of @name printed. The
problem with
> > this setup is that the <tr> and </td> make the whole thing
> > malformed/invalid due to the broken nesting. Is there a way to get
around
> > this, or maybe a more "proper" way of achieving the same end?
> >
> > -Tom
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>
Re: [OT] uneven tags inside XSLT conditionals
Posted by tv...@etria.org.
On Sun, Mar 17, 2002, Sreedhar Chintalapaty wrote:
> Tom,
>
> It's not clear what how you want to differentiate between when and
> otherwise, so my answer may be way off; however, if you want to
> differentiate at the cell (<td>) level, then try with the <tr> tags outside
Sorry I wasnt clear.
the "position() mod 2" will ring true for odd numbers, and false for even
numbers....or the other way around (I always get confused about that)..
Point is, given a list of X elements, I want to render them as such:
X1 X2
X3 X4
X5 X6
X7 X8
X...
So, if position() is odd (left column) render this part:
<tr>
<td>Some odd X</td>
And since the next one will be even, it will close the row:
<td>Some even X</td>
</tr>
Basically, the only difference is the <tr> on the odd side, and the </tr>
on the even side.
I do not just want this for 2 column rows though, I'd like to be able to
use "position() mod 4" (for example) to give each row 4 columns.....so
basically at some point I need something like:
<xsl:if test="some condition">
</tr>
</xsl:if>
and the same with <tr>, the problem is that cause the <tr> </tr> tags to be
in strange places and it fouls up the nesting, which causes XSLT errors....
Does that make any more sense? I could explain it in 30 seconds if I had a
napkin and a pen.
:)
-Tom
> the test:
>
> <tr>
> <xsl:when test="position() mod 2">
> <td>
> <xsl:value-of select="@name"/>
> </td>
> </xsl:when>
> <xsl:otherwise>
> <td>
> <xsl:value-of select="@name"/>
> </td>
> </xsl:otherwise>
> </tr>
>
> HTH,
>
> Sreedhar
>
>
> -----Original Message-----
> From: tvon@etria.org [mailto:tvon@etria.org]
> Sent: Sunday, March 31, 2002 11:16 AM
> To: cocoon-users@xml.apache.org
> Subject: [OT] uneven tags inside XSLT conditionals
>
>
> Hey,
>
> I've done some googling and I cant find the answer to this.
>
> I basically want to do:
>
> <xsl:choose>
> <xsl:when test="position() mod 2">
> <tr>
> <td>
> <xsl:value-of select="@name"/>
> </td>
> </xsl:when>
> <xsl:otherwise>
> <td>
> <xsl:value-of select="@name"/>
> </td>
> </tr>
> </xsl:otherwise>
> </xsl:choose>
>
>
> So basically there will be two columns of @name printed. The problem with
> this setup is that the <tr> and </td> make the whole thing
> malformed/invalid due to the broken nesting. Is there a way to get around
> this, or maybe a more "proper" way of achieving the same end?
>
> -Tom
>
>
>
>
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
> To unsubscribe, e-mail: <co...@xml.apache.org>
> For additional commands, e-mail: <co...@xml.apache.org>
>
>
>
>
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
> To unsubscribe, e-mail: <co...@xml.apache.org>
> For additional commands, e-mail: <co...@xml.apache.org>
>
>
--
--
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>