
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 ivanmacculi@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