xsl-list
[Top] [All Lists]

[xsl] Obtaining a specific context position()

2009-11-08 17:08:58
Hi All,
I have a nested grouping arrangement, simplified (I hope not too much or incorrectly) below in Listing 2.
It operates on the xml file simplified in Listing 3.

<xsl:value-of select="//List/Item/position()"/>"

returns the position of every <Item> in the list. What I want as a result is the position in the <List> of the <SubDiv1>'s parent <Item>.

The output I want is in Listing 1a, the output I get is in Listing 1b.
Thanks,
Mark

Listing 1a: desired.
<List>
<Item>
   <Heading>1</Heading>
   <SubDiv1>1</SubDiv1>
</Item>
<Item>
   <Heading>2</Heading>
   <SubDiv1>2</SubDiv>
</Item>
</List>

Listing 1a: actual

<List>
<Item>
   <Heading>1</Heading>
   <SubDiv1>1 2</SubDiv1>
</Item>
<Item>
   <Heading>2</Heading>
   <SubDiv1>1 2</SubDiv>
</Item>
</List>


Listing 2: simplified xsl:

<xsl:template match="List">
   <List>
<xsl:for-each-group select="Item" group-by="Heading" collation="{$sorting-collation}"> <xsl:sort select="current-grouping-key()" collation="{$sorting-collation}"/>
           <Item>
              <Heading>
                 <xsl:value-of select="position()"/> <!-- first call -->
               </Heading>

<xsl:for-each-group select="current-group()" group-by="SubDiv1"> <xsl:sort select="current-grouping-key()" collation="{$sorting-collation}"/>

                   <SubDiv1>
<xsl:value-of select="//List/Item/position()"/> <!-- second call -->
                   </SubDiv1>
           ...........
</xsl:template>

Listing 3: xml
<List>
   <Item>
     <Heading>Poland</Heading>
       <SubDiv1>1958</SubDiv1>
   </Item>
   <Item>
     <Heading >Spain</Heading>
      <SubDiv1>1958</SubDiv1>
  </Item>
</List>


--~------------------------------------------------------------------
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>