Subject: Re: how to select elements based on optional container argument
From: "Nick Shepherd" <nick@xxxxxxxxxxxxxxxx>
Date: Tue, 21 Aug 2007 18:10:55 -0400
|
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
|