This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Counting nodes processed
- From: "cutlass" <cutlass at secure0 dot com>
- To: "JAY SCHERER" <jay dot scherer at adtran dot com>, <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 4 Mar 2002 16:39:17 -0000
- Subject: Re: [xsl] Counting nodes processed
- References: <39B01E2189D99F4B8C9612462DB3922A054A0955@srv-exchange.adtran.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
et viola;
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/root">
<xsl:for-each select="category/topic">
<xsl:if test="position() =1 ">
<xsl:value-of select="parent::*/@value"/>
</xsl:if>
<xsl:if test="position() < 8">
<xsl:value-of select="@value"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
and yes, it is bad to use // as it searches the all nodes for a match, but i
didnt know if u wanted all topics, etc
cheers, jim fuller
----- Original Message -----
From: "JAY SCHERER" <jay.scherer@adtran.com>
To: "'cutlass'" <cutlass@secure0.com>
Sent: Monday, March 04, 2002 4:36 PM
Subject: RE: [xsl] Counting nodes processed
> Jim,
>
> I'm talking about the total number of topics, not the number per category.
I was actually getting the correct number in the 1st example you sent me,
but when we introduced the ability to print the category, that's when we ran
into troubles.
>
> Jay
>
> -----Original Message-----
> From: cutlass [mailto:cutlass@secure0.com]
> Sent: Monday, March 04, 2002 10:25 AM
> To: JAY SCHERER
> Subject: Re: [xsl] Counting nodes processed
>
>
> it depends on what *number* topics u are going from; as a total number of
> topics, or a number of topics per category.
>
> of course this has to do with what context the current node is in, which
is
> why things start getting strange when u introduce templates, u could
easily
> nest an xsl:for-each if u wanted....
>
> or there are much spiffier ways of doing it by using a named template and
> pass the a var that represents #_of_topics and which xml fragment as
another
> var
>
> oh well,
>
> HTH, jim fuller
>
>
> ----- Original Message -----
> From: "JAY SCHERER" <jay.scherer@adtran.com>
> To: "'cutlass'" <cutlass@secure0.com>
> Sent: Monday, March 04, 2002 4:26 PM
> Subject: RE: [xsl] Counting nodes processed
>
>
> > well... It was selecting the 1st 4 topics, even when in category 2
> >
> > category 1
> > topic1
> > topic2
> > topic3
> > topic4
> > category2
> > topic2-1
> > topic2-2
> >
> > so, I changed the xml to look something like
> >
> > <xsl:template match="/root">
> > <xsl:apply-templates select="category"/>
> > </xsl:template>
> >
> > <xsl:template match="category">
> > <xsl:value-of select="@value"/>
> > <br />
> > <xsl:for-each select="topic">
> > <xsl:if test="position() < 4">
> > <xsl:value-of select="@value"/><br />
> > </xsl:if>
> > </xsl:for-each>
> >
> > </xsl:template>
> >
> >
> > However, now it selects 4 from each category and not the sum of the 2.
> Let's change the count to 5 and given the xml above it should generate
> >
> > Category1
> > topic1
> > topic2
> > topic3
> > topic4
> >
> > Category2
> > topic2-1
> >
> >
> > Thanks,
> > Jay
> >
> > -----Original Message-----
> > From: cutlass [mailto:cutlass@secure0.com]
> > Sent: Monday, March 04, 2002 10:09 AM
> > To: JAY SCHERER
> > Subject: Re: [xsl] Counting nodes processed
> >
> >
> >
> >
> > ----- Original Message -----
> > From: "JAY SCHERER" <jay.scherer@adtran.com>
> > To: <xsl-list@lists.mulberrytech.com>
> > Cc: <cutlass@secure0.com>
> > Sent: Monday, March 04, 2002 4:09 PM
> > Subject: RE: [xsl] Counting nodes processed
> >
> >
> > > excellent...
> > >
> > > now if you can just tell me how I get the category of the topic.
> > >
> > > output would need to be something like
> > >
> > > Category1
> > > topic1
> > > topic2
> > > topic3
> > > topic4
> > >
> > > Category2
> > > topic1
> > > topic2
> > >
> >
> >
> > ok i will introduce some templating for you
> >
> >
> > <?xml version="1.0"?>
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> > <xsl:template match="root">
> >
> > <xsl:apply-templates select="category"/>
> >
> > </xsl:template>
> >
> > <xsl:template match="category">
> > <xsl:value-of select="@value"/>
> > <br />
> > <xsl:for-each select="//topic">
> > <xsl:if test="position() < 4">
> > <xsl:value-of select="@value"/><br />
> > </xsl:if>
> > </xsl:for-each>
> >
> > </xsl:template>
> >
> >
> > cheers, jim fuller
> > </xsl:stylesheet>
> >
> > > Do you see where I'm going with this? Thanks for the help.
> > >
> > > Jay
> > >
> > > -----Original Message-----
> > > From: cutlass [mailto:cutlass@secure0.com]
> > > Sent: Monday, March 04, 2002 9:38 AM
> > > To: xsl-list@lists.mulberrytech.com
> > > Subject: Re: [xsl] Counting nodes processed
> > >
> > >
> > > Hello Jay,
> > >
> > > ----- Original Message -----
> > > From: "JAY SCHERER" <jay.scherer@adtran.com>
> > >
> > >
> > >
> > > > I've got a need to limit the amount of ouput generated in a
> translation.
> > > Assume the following xml
> > > >
> > > > <category value="category1">
> > > > <topic value="topic1"/>
> > > > <topic value="topic2"/>
> > > > <topic value="topic3"/>
> > > > </category>
> > > > <category value="category2">
> > > > <topic value="topic1"/>
> > > > <topic value="topic2"/>
> > > > <topic value="topic3"/>
> > > > </category>
> > > >
> > > > How would I limit my total number of topics output to say 4 topics?
> > This
> > > is straight forward in code, but not sure how to do it xsl? Basically
> the
> > > output would be topic1,2 and 3 from category1 and topic 1 from
category
> 2
> > > >
> > >
> > > i've done an example in a procedural style to be clear for you, this
is
> > > just one way of doing this
> > >
> > > xml
> > > ----------------------------------
> > > <?xml version="1.0" ?>
> > > <root>
> > >
> > > <category value="category1">
> > > <topic value="topic1"/>
> > > <topic value="topic2"/>
> > > <topic value="topic3"/>
> > > </category>
> > > <category value="category2">
> > > <topic value="cattopic1"/>
> > > <topic value="cattopic2"/>
> > > <topic value="cattopic3"/>
> > > </category>
> > >
> > > </root>
> > >
> > > xsl
> > > ---------------------------------
> > > <?xml version="1.0"?>
> > > <xsl:stylesheet version="1.0"
> > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> > > <xsl:template match="/">
> > >
> > >
> > > <xsl:for-each select="//topic">
> > >
> > > <xsl:if test="position() < 4">
> > > <xsl:value-of select="@value"/>
> > > </xsl:if>
> > >
> > > </xsl:for-each>
> > > </xsl:template>
> > > </xsl:stylesheet>
> > >
> > >
> > > cheers, jim fuller
> > >
> > > > Thanks,
> > > > Jay
> > > >
> > > > Jay Scherer
> > > > 901 Explorer Blvd
> > > > Huntsville, AL 35806
> > > > (256)963-8130
> > > > Sun Certified Developer For The Java Platform
> > > > Sun Certified Programmer For The Java Platform
> > > > Oracle Certified Application Developer
> > > >
> > > >
> > > > XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
> > > >
> > >
> > >
> > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list