xsl-list
[Top] [All Lists]

Axis-Name help

2003-01-22 15:38:50
All,

Given this type of tree structure:

<!ELEMENT grandp (parent)*>
<!ELEMENT parent (child)*>
<!ELEMENT child EMPTY>

I am trying to reference each child by a specific position. I have included a 'pos' attribute just for clarity. It is not part of my dataset. In other words, suppose I have the following:

<grandp pos='na'>
 <parent pos='1'>
   <child pos='1'>
   <child pos='2'>
   <child pos='3'>
   <child pos='4'>
 </parent>
 <parent pos='2'>
   <child pos='1'>
   <child pos='2'>
   <child pos='3'>
   <child pos='4'>
 </parent>
 <parent pos='3'>
   <child pos='1'>
   <child pos='2'>
   <child pos='3'>
   <child pos='4'>
 </parent>
 <parent pos='4'>
   <child pos='1'>
   <child pos='2'>
   <child pos='3'>
   <child pos='4'>
 </parent>
</grandp>

I create a nodeset that only contains the 'child' nodes which have a position 1 (ie. pos='1'). Another way to describe this visually would be to create a tabular format:

parent(1)  child(1) child(2) child(3) child(4)
parent(2)  child(1) child(2) child(3) child(4)
parent(3)  child(1) child(2) child(3) child(4)
parent(4)  child(1) child(2) child(3) child(4)

I want to create a nodeset for a variable which contains each column of data.

My limited knowledge made me think this might work...but as testing will show, it does not:
<x:template match="/">
 <x:for-each select="grandp/parent">
   ....code....
   <x:variable name="pos" select="$someCorrectPosition" />
   ....code....
   <x:variable name="nodeSet">
     <x:value-of select="parent::*/child::*/child::*[position()=$pos" />
   </x:variable>
   ...operate on the nodeSet variable...
 </x:for-each>
</x:template>

Thanks in advance!
Bix

_________________________________________________________________
MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. http://join.msn.com/?page=features/virus


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



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