Hi, It is not very clear from your description what is the algorithm to compute the new values. Assuming that you want those values only on the level 3 div elements and they will continue with carta 3r, carta 3v, carta 4r, etc. then something like below should do it:
<xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="node() | @*"/> </xsl:copy> </xsl:template> <xsl:template match="/mets:div/mets:div/mets:div"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:attribute name="LABEL"> <xsl:text>Carta </xsl:text> <xsl:variable name="index" select="count(preceding::mets:div[parent::mets:div/parent::mets:div])"/> <xsl:value-of select="($index - $index mod 2) div 2 + 1"/> <xsl:value-of select="if ($index mod 2 = 0) then 'r' else 'v'"/> </xsl:attribute> <xsl:apply-templates select="node()"/> </xsl:copy> </xsl:template> Best Regards, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com ivanmacc...@libero.it wrote: > Hi all, i'm a librarian with a problem: i've to change the value of attribute > for each element of a group that i'm not able to select and count. > i've something like this: > > <mets:div LABEL="Testo" ORDER="4" ORDERLABEL="1"> > <mets:div LABEL="Frontespizio" ORDER="1" ORDERLABEL="1"> > <mets:div LABEL="Pagina 5" ORDER="1" ORDERLABEL="5"> > <mets:fptr FILEID="file.00008"/> > </mets:div> > </mets:div> > <mets:div LABEL="Dedica" ORDER="2" ORDERLABEL="1"> > <mets:div LABEL="Pagina 6" ORDER="1" ORDERLABEL="6"> > <mets:fptr FILEID="file.00009"/> > </mets:div> > </mets:div> > <mets:div LABEL="Canto I" ORDER="3" ORDERLABEL="1"> > <mets:div LABEL="Pagina 7" ORDER="1" ORDERLABEL="7"> > <mets:fptr FILEID="file.00010"/> > </mets:div> > <mets:div LABEL="Pagina 8" ORDER="2" ORDERLABEL="8"> > <mets:fptr FILEID="file.00011"/> > </mets:div> > <mets:div LABEL="Pagina 9" ORDER="3" ORDERLABEL="9"> > <mets:fptr FILEID="file.00012"/> > </mets:div> > </mets:div> > </mets:div> > > i have to change the value of LABEL from "pagina 5, pagina 6, pagina 7, > pagina 8, etc..." to "carta 1r, carta 1v, carta 2r, carta 2v, etc". > It will be something like this: > > <mets:div LABEL="Testo" ORDER="4" ORDERLABEL="1"> > <mets:div LABEL="Frontespizio" ORDER="1" ORDERLABEL="1"> > <mets:div LABEL="Carta 1r" ORDER="1" ORDERLABEL="5"> > <mets:fptr FILEID="file.00008"/> > </mets:div> > </mets:div> > <mets:div LABEL="Dedica" ORDER="2" ORDERLABEL="1"> > <mets:div LABEL="Carta 1v" ORDER="1" ORDERLABEL="6"> > <mets:fptr FILEID="file.00009"/> > </mets:div> > </mets:div> > <mets:div LABEL="Canto I" ORDER="3" ORDERLABEL="1"> > <mets:div LABEL="Carta 2r" ORDER="1" ORDERLABEL="7"> > <mets:fptr FILEID="file.00010"/> > </mets:div> > <mets:div LABEL="Carta 2v" ORDER="2" ORDERLABEL="8"> > <mets:fptr FILEID="file.00011"/> > </mets:div> > <mets:div LABEL="Carta 3r" ORDER="3" ORDERLABEL="9"> > <mets:fptr FILEID="file.00012"/> > </mets:div> > </mets:div> > </mets:div> > > thanks a lot to everyone. > > > > _______________________________________________ > oXygen-user mailing list > oXygen-user@oxygenxml.com > http://www.oxygenxml.com/mailman/listinfo/oxygen-user _______________________________________________ oXygen-user mailing list oXygen-user@oxygenxml.com http://www.oxygenxml.com/mailman/listinfo/oxygen-user