Subject: Re: how to select elements based on optional container argument
From: "Nick Shepherd" <nick@xxxxxxxxxxxxxxxx>
Date: Tue, 21 Aug 2007 18:12:20 -0400
|
maybe it would help if I had the appropriate logic matched to the
appropriate condition O.o
corrected below :)
<xsl:apply-templates match="container">
<xsl:choose>
<xsl:when test="@select > 0">
<xsl:for-each select="item">
<xsl:if test="position() <= @select">
<xsl:comment>Do your dirty business here</xsl:comment>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="item">
<xsl:comment>Same dirty Business</xsl:comment>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:apply-templates>
On 8/21/07, Nick Shepherd <nick@xxxxxxxxxxxxxxxx> wrote:
> the following isn't tested and there may be a more elegant solution
> but this is probably how I would handle a situation like this:
>
> <xsl:apply-templates match="container">
>
> <xsl:choose>
> <xsl:when test="@select > 0">
> <xsl:for-each select="item">
> <xsl:comment>Same dirty Business</xsl:comment>
> </xsl:for-each>
> </xsl:when>
> <xsl:otherwise>
> <xsl:for-each select="item">
> <xsl:if test="position() <= @select">
> <xsl:comment>Do your dirty business here</xsl:comment>
> </xsl:if>
> </xsl:for-each>
> </xsl:otherwise>
> </xsl:choose>
>
> </xsl:apply-templates>
>
> hope that helps :)
>
> Nick
>
> On 8/21/07, Andreas Kemkes <a5sk4s@xxxxxxxxx> wrote:
> > XSLT 1.0 is a constraint.
> >
> > I'm having trouble with a select expression to select the marked elements (<!--X-->) in the following XML:
> >
> > <container select="2">
> > <item>...</item><!--X-->
> > <item>...</item><!--X-->
> >
> > <item>...</item>
> >
> > </container>
> > <container>
> >
> > <item>...</item><!--X-->
> >
> > <item>...</item><!--X-->
> >
> >
> > <item>...</item><!--X-->
> >
> >
> > </container>
> >
> > <container select="1">
> >
> > <item>...</item><!--X-->
> > <item>...</item>
> >
> > <item>...</item>
> >
> > <item>...</item>
> >
> > </container>
> >
> > In the case of a no select attribute all items in the container should be in the node set.
> > If there is a attribute select="n", only the first "n" items should be in the node set.
> > The expression needs to work across all containers.
> >
> > There is the additional constraint that only items with parent container are to be selected.
> >
> >
> > Where could I start to look for code examples that solves a similar problem?
> >
> > Thanks in advance for your help.
> >
> >
> >
> >
> > ____________________________________________________________________________________
> > Shape Yahoo! in your own image. Join our Network Research Panel today! http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7
|