i confuse parts of xml, but my problem remains the same:
i want to change this XML:
<mets:div LABEL="Canto III" ORDER="5" ORDERLABEL="1">
<mets:div LABEL="Pagina 26" ORDER="1" ORDERLABEL="26">
<mets:fptr FILEID="file.00029"/>
</mets:div>
<mets:div LABEL="Pagina 27" ORDER="2" ORDERLABEL="27">
<mets:fptr FILEID="file.00030"/>
</mets:div>
<mets:div LABEL="Pagina 28" ORDER="3" ORDERLABEL="28">
<mets:fptr FILEID="file.00031"/>
</mets:div>
<mets:div LABEL="Pagina 29" ORDER="4" ORDERLABEL="29">
<mets:fptr FILEID="file.00032"/>
</mets:div>
<mets:div LABEL="Pagina 30" ORDER="5" ORDERLABEL="30">
<mets:fptr FILEID="file.00033"/>
</mets:div>
<mets:div LABEL="Pagina 31" ORDER="6" ORDERLABEL="31">
<mets:fptr FILEID="file.00034"/>
</mets:div>
<mets:div LABEL="Pagina 32" ORDER="7" ORDERLABEL="32">
<mets:fptr FILEID="file.00035"/>
</mets:div>
<mets:div LABEL="Pagina 33" ORDER="8" ORDERLABEL="33">
<mets:fptr FILEID="file.00036"/>
</mets:div>
<mets:div LABEL="Pagina 34" ORDER="9" ORDERLABEL="34">
<mets:fptr FILEID="file.00037"/>
</mets:div>
<mets:div LABEL="Pagina 35" ORDER="10" ORDERLABEL="35">
<mets:fptr FILEID="file.00038"/>
</mets:div>
<mets:div LABEL="Pagina 36" ORDER="11" ORDERLABEL="36">
<mets:fptr FILEID="file.00039"/>
</mets:div>
</mets:div>
in this XML:
<mets:div LABEL="Canto III" ORDER="5" ORDERLABEL="1">
<mets:div LABEL="Carta [12v]" ORDER="1" ORDERLABEL="26">
<mets:fptr FILEID="file.00029"/>
</mets:div>
<mets:div LABEL="Carta [13r]" ORDER="2" ORDERLABEL="27">
<mets:fptr FILEID="file.00030"/>
</mets:div>
<mets:div LABEL="Carta [13v]" ORDER="3" ORDERLABEL="28">
<mets:fptr FILEID="file.00031"/>
</mets:div>
<mets:div LABEL="Carta [14r]" ORDER="4" ORDERLABEL="29">
<mets:fptr FILEID="file.00032"/>
</mets:div>
<mets:div LABEL="Carta [14v]" ORDER="5" ORDERLABEL="30">
<mets:fptr FILEID="file.00033"/>
</mets:div>
<mets:div LABEL="Carta [15r]" ORDER="6" ORDERLABEL="31">
<mets:fptr FILEID="file.00034"/>
</mets:div>
<mets:div LABEL="Carta [15v]" ORDER="7" ORDERLABEL="32">
<mets:fptr FILEID="file.00035"/>
</mets:div>
<mets:div LABEL="Carta [16r]" ORDER="8" ORDERLABEL="33">
<mets:fptr FILEID="file.00036"/>
</mets:div>
<mets:div LABEL="Carta [16v]" ORDER="9" ORDERLABEL="34">
<mets:fptr FILEID="file.00037"/>
</mets:div>
<mets:div LABEL="Carta [17r]" ORDER="10" ORDERLABEL="35">
<mets:fptr FILEID="file.00038"/>
</mets:div>
<mets:div LABEL="Carta [17v]" ORDER="11" ORDERLABEL="36">
<mets:fptr FILEID="file.00039"/>
</mets:div>
</mets:div>
this XSL doesn't work. Why? (i obtained that result in another way, not with
this XSL).
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet exclude-result-prefixes="#all" version="2.0"
xmlns:mets="http://www.loc.gov/METS/" xmlns:mix="http://www.loc.gov/mix/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:rd="http://cosimo.stanford.edu/sdr/metsrights/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:f="http://example.com/f">
<xsl:output indent="yes" method="xml"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@*, node()"/>
</xsl:copy>
</xsl:template>
<xsl:variable name="g" select="//mets:div[matches(@LABEL, '^Pagina
[0-9]+$')]"/>
<xsl:template match="*[. intersect $g]/@LABEL">
<xsl:variable name="n" select="f:index-of-node($g, ..)"/>
<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:function name="f:index-of-node" as="xs:integer*">
<xsl:param name="nodes" as="node()*"/>
<xsl:param name="node" as="node()"/>
<xsl:sequence select="1 to count($nodes)[subsequence($nodes, ., 1) is
$node]"/>
</xsl:function>
</xsl:stylesheet>
--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--