RE: [xsl] Numbering: position() ?

Subject: RE: [xsl] Numbering: position() ?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 10 Jan 2007 13:38:53 -0000
Read up about the "from" attribute of <xsl:number level="any"/>.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Sven Waibel [mailto:sven.waibel@xxxxxxxx] 
> Sent: 10 January 2007 13:02
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Numbering: position() ?
> 
> The tree walk is the problem.
> Numbering is okay, but it should restart at a new branch.
> 
> now it's:
> 
> 1.1
> 1.2
> 1.3
> 1.4
> 1.5
> 
> 2.6
> 2.7
> 2.8
> 2.9
> 2.10
> 2.11
> 
> it should be:
> 
> 1.1
> 1.2
> 1.3
> 1.4
> 1.5
> 
> 2.1
> 2.2
> 2.3
> 2.4
> 2.5
> 
> Michael Kay wrote:
> > Then try <xsl:number level="any"/>
> > 
> > You can use position() if the apply-templates is
> > 
> > <xsl:apply-templates select="//page"/>
> > 
> > but not if you are doing a hierarchic tree walk.
> > 
> > Michael Kay
> > http://www.saxonica.com/
> > 
> >> -----Original Message-----
> >> From: Sven Waibel [mailto:sven.waibel@xxxxxxxx]
> >> Sent: 10 January 2007 10:55
> >> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >> Subject: Re: [xsl] Numbering: position() ?
> >>
> >> The right one should look like:
> >> 1.1
> >> 1.2
> >> 1.3
> >> 1.4
> >> 1.5
> >>
> >>
> >> Michael Kay wrote:
> >>> 1. The value of position() within an xsl:template depends on the 
> >>> position of the node within the set of nodes selected by 
> the select 
> >>> expression of the corresponding xsl:apply-templates, which
> >> you haven't shown us.
> >>> 2. You don't say what numbering you would consider correct. 
> >> If you're
> >>> looking for multi-level numbering, try <xsl:number
> >> level="multiple"/>. 
> >>> If you want single-level numbering, consider <xsl:number
> >> level="any"/>.
> >>> Michael Kay
> >>> http://www.saxonica.com/
> >>>  
> >>>
> >>>> -----Original Message-----
> >>>> From: Sven Waibel [mailto:sven.waibel@xxxxxxxx]
> >>>> Sent: 10 January 2007 10:41
> >>>> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >>>> Subject: [xsl] Numbering: position() ?
> >>>>
> >>>> Hi,
> >>>>
> >>>> i got following xml:
> >>>>
> >>>> <book id="1">
> >>>> 	<page>
> >>>> 	<special>
> >>>> 		<page>
> >>>> 		<page>
> >>>> 	</special>	
> >>>> 	<page>
> >>>> 	<page>
> >>>> </book>
> >>>>
> >>>> xslt:
> >>>>
> >>>>
> >>>> <xsl:template match="page">
> >>>> 	<xsl:value-of select="concat(concat(ancestor::book/$id,
> >>>> '.'), position())"/> </xsl:template>
> >>>>
> >>>> I got this numbering:
> >>>> 1.1
> >>>> 1.1
> >>>> 1.2
> >>>> 1.3
> >>>> 1.4
> >>>>
> >>>> How can i achieve that the numbering is correct?
> >>>>
> >>>> Thanks
> >>>> Sven
> >>>
> >>>
> >>>
> >> --
> >> -----BEGIN PGP PUBLIC KEY BLOCK-----
> >> Version: GnuPG v1.4.2.1 (MingW32)
> >>
> >> mQGhBEOBzYARBACoMaMMoAsQShbK1CcoW1IsNJCpLYIkKPE1sRQmexqeBh0Fc9w+
> >> o3nbfhxmfWj9KABeWiLqU0Z4uIIJzOSbMXn7LDIJTQSCHvJ7MGV/yvz31szViWlk
> >> eUNsFb6JbCo424Eiqh01Z/6Txtr0zIkiAKO68WnGOD1UiFjHMrsTqquVywCg747m
> >> Da8LuvtkulqPm4BiPUsDvw8D+Ip90zPZptqpaf4jc55g4CuGNVr/2QqUJ3au8Flx
> >> oXaTvQDOMNa69Eeob/5g9qKy5mB6dNqUYAvZL1wKXSULbb2bxzJox9RZTLDb6Q3G
> >> +VN9aMMikq6Ef1FVE0t92tJp6G9PPPL0Oy7j2EPWXfuqj1BxjRB2YQufFfNQGmad
> >> ZeMD/iMaBRdzcIB8SmxXH+ifO5GOcHYNL2NN5mV7KTWoS+9WpFSaT5Q2xoVtKpl1
> >> aQynehKx4ppmdN54bn1HP3tnnV6gtORGEi1eSA2Ob7zqFTIdYQ9sdQAFLOYXfROj
> >> qxLvh50NIv0wtaX5S81jNl9Tmm6E7b91qH9TV5NDsxO24KqGtCJTdmVuIFdhaWJl
> >> bCA8c3Zlbi53YWliZWxAaW1idXMuZGU+iGEEExECACEFAkOBzYAFCQlmAYAGCwkI
> >> BwMCAxUCAwMWAgECHgECF4AACgkQkdghT07BOqxILQCg7qfxGsOcUKUi08+pxy0/
> >> rBPwj4IAoLpE/pTEpqXtVjwJv3Ew0SU2MAkTtBtTdmVuIFdhaWJlbCA8c3ZlbkBp
> >> bWJ1cy5kZT6IZgQTEQIAJgUCRXacYQIbIwUJCWYBgAYLCQgHAwIEFQIIAwQWAgMB
> >> Ah4BAheAAAoJEJHYIU9OwTqsKBAAoOUani/sqz2Vqlohcb7KHGKy2KsYAKCKPq/2
> >> uUd4ghAJAT/iHEYpUytWibkCDQRDgc2HEAgArjMI5+e7VpxuGyMypjosiGhOklh4
> >> aWP4pUjH+hkBQnKQcsFcgl+5EjKd6S0tNH9Jf1WgAmhPiWuutauKYujpvLu3UUSi
> >> AcOs+xhnD0qeyBLClpfa+Th6OzBhY/OIOTnL+fAN28ftyT2sci7dUv17Rae9WCUd
> >> R4Y/D+bVN+bAvWNFU9tZO34L6ZYSIc3UJN76zroaVqxGUnPKlpVA4AlDkk4Nq5v0
> >> FBznvgJNEO48rIR7m6JNLYbACDjyCMnhx2HvD02GlYIGvv1eokRusEdAF+idqQQd
> >> VXQE+OfOpf0EgDViImdKMLEp3UqG8NZUanbeQfATe3kNWd4kBE2gUYp0uwADBgf+
> >> KNoj19Mdo6h15d714X7NhI/lSoFtkFoEIRetZPVQ9n4kKEnW1Oc/FRKdDI2Di6tp
> >> JwqbpeazwML4Rlf3vMfdjuSeG0jvu9WbLAFcpzj5BpJNw4xHoK8w6I2djWzG3qsk
> >> wfVDXgXL3SSf4owkRNDOT+M+Kt6XMa27TKtWuu/CtBQaIZFIYlPwlVkxpwRKjLBy
> >> 5PJ8uO+x4nwsaV+KZFGcy9vG7tJlS45AeafokSJ6S1nVf6bZBTZ3Kt1Rd3ZiEXW0
> >> 1m3MmtCXH2ecrK8q039374KfiARKshB9aLr6FC2T0MB50bjk6FCX+flywPHkXGry
> >> tjurD0wb/4MulfKAn7EdaIhMBBgRAgAMBQJDgc2HBQkJZgGAAAoJEJHYIU9OwTqs
> >> dnkAoNntj0XiJ+pkiYx2sztNIDDoHLF3AJ488oMgSbcwFYhnBsDEg6Acg9qNcg==
> >> =AD7B
> >> -----END PGP PUBLIC KEY BLOCK-----
> > 
> > 
> > 
> 
> --
> -----BEGIN PGP PUBLIC KEY BLOCK-----
> Version: GnuPG v1.4.2.1 (MingW32)
> 
> mQGhBEOBzYARBACoMaMMoAsQShbK1CcoW1IsNJCpLYIkKPE1sRQmexqeBh0Fc9w+
> o3nbfhxmfWj9KABeWiLqU0Z4uIIJzOSbMXn7LDIJTQSCHvJ7MGV/yvz31szViWlk
> eUNsFb6JbCo424Eiqh01Z/6Txtr0zIkiAKO68WnGOD1UiFjHMrsTqquVywCg747m
> Da8LuvtkulqPm4BiPUsDvw8D+Ip90zPZptqpaf4jc55g4CuGNVr/2QqUJ3au8Flx
> oXaTvQDOMNa69Eeob/5g9qKy5mB6dNqUYAvZL1wKXSULbb2bxzJox9RZTLDb6Q3G
> +VN9aMMikq6Ef1FVE0t92tJp6G9PPPL0Oy7j2EPWXfuqj1BxjRB2YQufFfNQGmad
> ZeMD/iMaBRdzcIB8SmxXH+ifO5GOcHYNL2NN5mV7KTWoS+9WpFSaT5Q2xoVtKpl1
> aQynehKx4ppmdN54bn1HP3tnnV6gtORGEi1eSA2Ob7zqFTIdYQ9sdQAFLOYXfROj
> qxLvh50NIv0wtaX5S81jNl9Tmm6E7b91qH9TV5NDsxO24KqGtCJTdmVuIFdhaWJl
> bCA8c3Zlbi53YWliZWxAaW1idXMuZGU+iGEEExECACEFAkOBzYAFCQlmAYAGCwkI
> BwMCAxUCAwMWAgECHgECF4AACgkQkdghT07BOqxILQCg7qfxGsOcUKUi08+pxy0/
> rBPwj4IAoLpE/pTEpqXtVjwJv3Ew0SU2MAkTtBtTdmVuIFdhaWJlbCA8c3ZlbkBp
> bWJ1cy5kZT6IZgQTEQIAJgUCRXacYQIbIwUJCWYBgAYLCQgHAwIEFQIIAwQWAgMB
> Ah4BAheAAAoJEJHYIU9OwTqsKBAAoOUani/sqz2Vqlohcb7KHGKy2KsYAKCKPq/2
> uUd4ghAJAT/iHEYpUytWibkCDQRDgc2HEAgArjMI5+e7VpxuGyMypjosiGhOklh4
> aWP4pUjH+hkBQnKQcsFcgl+5EjKd6S0tNH9Jf1WgAmhPiWuutauKYujpvLu3UUSi
> AcOs+xhnD0qeyBLClpfa+Th6OzBhY/OIOTnL+fAN28ftyT2sci7dUv17Rae9WCUd
> R4Y/D+bVN+bAvWNFU9tZO34L6ZYSIc3UJN76zroaVqxGUnPKlpVA4AlDkk4Nq5v0
> FBznvgJNEO48rIR7m6JNLYbACDjyCMnhx2HvD02GlYIGvv1eokRusEdAF+idqQQd
> VXQE+OfOpf0EgDViImdKMLEp3UqG8NZUanbeQfATe3kNWd4kBE2gUYp0uwADBgf+
> KNoj19Mdo6h15d714X7NhI/lSoFtkFoEIRetZPVQ9n4kKEnW1Oc/FRKdDI2Di6tp
> JwqbpeazwML4Rlf3vMfdjuSeG0jvu9WbLAFcpzj5BpJNw4xHoK8w6I2djWzG3qsk
> wfVDXgXL3SSf4owkRNDOT+M+Kt6XMa27TKtWuu/CtBQaIZFIYlPwlVkxpwRKjLBy
> 5PJ8uO+x4nwsaV+KZFGcy9vG7tJlS45AeafokSJ6S1nVf6bZBTZ3Kt1Rd3ZiEXW0
> 1m3MmtCXH2ecrK8q039374KfiARKshB9aLr6FC2T0MB50bjk6FCX+flywPHkXGry
> tjurD0wb/4MulfKAn7EdaIhMBBgRAgAMBQJDgc2HBQkJZgGAAAoJEJHYIU9OwTqs
> dnkAoNntj0XiJ+pkiYx2sztNIDDoHLF3AJ488oMgSbcwFYhnBsDEg6Acg9qNcg==
> =AD7B
> -----END PGP PUBLIC KEY BLOCK-----

Current Thread