xsl-list
[Top] [All Lists]

Re: Accessing specific repetitive node

2004-03-05 05:36:07
Ken,

Thanks for the response.  On this occasion, I was trying to access items 1,
3 & 5, but it could be any items and I do not know in advance, which is why
I need to select by position reference.

Any ideas why this might not be working.  It may help you to see the
response I just posted to David on this topic.

Thanks,

Mark

----- Original Message -----
From: "G. Ken Holman" <gkholman(_at_)CraneSoftwrights(_dot_)com>
To: "XSL-List" <XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Friday, March 05, 2004 12:15 PM
Subject: Re: [xsl] Accessing specific repetitive node


At 2004-03-05 11:47 +0000, Mark Williams wrote:
The XML looks like this

<DATA>
    <Table ID="2">
        <Data>
            <Code>1</Code>
            <Code>2</Code>
            <Code>3</Code>
            <Code>4</Code>
            <Code>5</Code>
           </Data>
    </Table>
</DATA>

I need to access the first 1, 3 and 5 items.

Is it that you need to return all odd-numbered items?  Or do you need just
the first, third and fifth items of all sets?

I have tried it in the
following ways:

 <xsl:value-of select="DATA/Table[(_at_)ID='2']/Data/Code[1]" />  //this
works
okay
 <xsl:value-of select="DATA/Table[(_at_)ID='2']/Data/Code[position()=1]" />
//this also works okay

Those two are equivalent: the first is the abbreviation of the second.

<xsl:value-of> returns only a single item so you cannot use it to return
multiple items.

To access every odd item in the list you could use modulus arithmetic:

   <xsl:for-each select="DATA/Table[(_at_)ID='2']/Data/Code[position() mod 2 =
1]">
     <xsl:if test="position() > 1">, </xsl:if>
     <xsl:value-of select="."/>
   </xsl:for-each>

I hope this helps.

.............................. Ken

--
US XSL training: Washington,DC March 15; San Francisco,CA March 22
World-wide on-site corporate, government & user group XML training
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/s/bc


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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