Hi all, i've this xslt to transform a xml to another that i've already posted.
my problem is that i must modify it to have a numeration that starts from 7 and
not from 1. So besides to have Carta 1r and follows, i will have Carta 7r and
follows. I thought to "from" attribute of xslt:number, but it doesn't work. can
you help me?
<xsl:stylesheet
xmlns:xsl="http://www.w3.
org/1999/XSL/Transform"
xmlns:mets="http://www.loc.gov/METS/"
version="
2.0">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-
templates select="@*, node()"/>
</xsl:copy>
</xsl:template>
<xsl:
template match="mets:div/@LABEL[matches(., '^Pagina [0-9]+$')]">
<xsl:
variable name="n">
<xsl:number level="any" count="mets:div[@LABEL[matches
(.,
'^Pagina [0-9]+$')]]"/>
</xsl:variable>
<xsl:attribute name="
LABEL" select="concat('Carta ', if ($n mod 2 =
0) then concat(($n + 1) idiv 2,
'v') else concat(($n + 1) idiv 2, 'r'))"/>
</xsl:template>
</xsl:
stylesheet>
XML:
<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>
>
OUTPUT XML
> <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>
|