xsl-list
[Top] [All Lists]

Re: [xsl] how to select elements based on optional container argument

2007-08-21 15:12:41
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 &gt; 0">
                        <xsl:for-each select="item">
                                <xsl:if test="position() &lt;= @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(_at_)thedevlounge(_dot_)com> 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 &gt; 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() &lt;= @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(_at_)yahoo(_dot_)com> 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



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>