Re: RE: [xsl] testing for last node of antecesor

Subject: Re: RE: [xsl] testing for last node of antecesor
From: CACTUS_JIROPA <CACTUS_JIROPA@xxxxxxxx>
Date: Fri, 11 Jun 2004 18:41:30 +0200
Thanks. I doesn't work because I've realized that
must be the last node of 'reg', not 'detalle', because one reg
only contains one detalle, but 'datos' contains several 'reg's

so: <xsl:if test="ancestor::reg/following-sibling::*">
works fine

Only problem now is when this happen on first level of recursion,
because that 'detalle' node isn't into a reg node, but this is always
first and last.

any other idea?



----- Mensaje Original -----
De: "Michael Kay" <mhk@xxxxxxxxx>
Fecha: Viernes, Junio 11, 2004 6:08 pm
Asunto: RE: [xsl] testing for last node of antecesor

> Try
> 
> <xsl:if test="ancestor::detalle/following-sibling::*">
> 
> Michael Kay  
> 
> > -----Original Message-----
> > From: CACTUS_JIROPA [mailto:CACTUS_JIROPA@xxxxxxxx] 
> > Sent: 11 June 2004 15:49
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] testing for last node of antecesor
> > 
> > Hello, I have a XML like this:
> > 
> > <listado>
> >   <report>
> >   </report>
> >   <pagina>
> >   </pagina>
> >   <detalle>
> >     <resumen>
> >     </resumen>
> >     <datos>
> >       <reg>
> >         <campoReg>
> >         </campoReg>
> >         <detalle>
> >           <cabecera>
> >           </cabecera>
> >           <pie>
> >             <campoPie>
> >               <nombre>break</nombre>
> >             </campoPie>
> >           </pie>
> >           <resumen>
> >           </resumen>
> >           <datos>
> >           </datos>
> >         </detalle>
> >       </reg>
> >       <reg>
> >         <campoReg>
> >         </campoReg>
> >         <detalle>
> >           <cabecera>
> >           </cabecera>
> >           <pie>
> >             <campoPie>
> >               <nombre>break</nombre>
> >             </campoPie>
> >           </pie>
> >           <resumen>
> >           </resumen>
> >           <datos>
> >           </datos>
> >         </detalle>
> >       </reg>
> >     </datos>
> >     <cabecera>
> >     </cabecera>
> >     <pie>
> >       <campoPie>
> >         <nombre>break</nombre>
> >       </campoPie>
> >     </pie>
> >   </detalle>
> > </listado>
> > 
> > The problem is than when I evaluate node 
> > //detalle/pie/campoPie/nombre,
> > in any of its recursive levels, I want to test if that 
> > 'detalle' node (
> > that is always antecesor of 'nombre' ) is the last in his level.
> > 
> > In other words, this is the structure of a report, I want to 
> > introduce a
> > page break when I find 'break' value in 'nombre' node, but omits 
> this> break in the last node.
> > I think I have test:
> > 
> > <xsl:if test="ancestor::detalle [position() != last()]"> 
> > 
> > but it always evaluate to true.
> > 
> > any ideas?
> > 
> > Thank you 
> > 
> > Sergio Roldan Castillo
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > --+---------------------------------------------------------------
> ---
> > 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@xxxxxxxxxxxxxxxxxxxxxx>
> > --+--
> > 
> > 
> 
> 
> 
> --+-----------------------------------------------------------------
> -
> 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@xxxxxxxxxxxxxxxxxxxxxx>
> --+--
> 
> 



Current Thread