I'm not sure in what sense "Pagina 59" is the first in your list - your
input and output lists don't seem to correspond. But you can of course
remove the first in the list by changing the variable from
<xsl:variable name="g" select="//mets:div[matches(@LABEL, '^Pagina
[0-9]+$')]"/>
to
<xsl:variable name="g" select="remove(//mets:div[matches(@LABEL, '^Pagina
[0-9]+$')], 1)"/>
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
-----Original Message-----
From: ivanmacculi(_at_)libero(_dot_)it
[mailto:ivanmacculi(_at_)libero(_dot_)it]
Sent: 27 November 2009 13:41
To: XSL user
Subject: [xsl] how to change the values of a list of
attribute excluding one or more of these.
Yesterday i asked you how to change the values of a
enumerated list of attributes building the string of the new
values: the list is something like this:
<mets:div LABEL="Canto VI" ORDER="8" ORDERLABEL="1">
<mets:div LABEL="Pagina 56">
<mets:fptr FILEID="file.00059"/>
</mets:div>
<mets:div LABEL="Pagina 57">
<mets:fptr FILEID="file.00060"/>
</mets:div>
<mets:div LABEL="Pagina 58">
<mets:fptr FILEID="file.00061"/>
</mets:div>
<mets:div LABEL="Pagina 59">
<mets:fptr FILEID="file.00062"/>
</mets:div>
<mets:div LABEL="Pagina 60">
<mets:fptr FILEID="file.00063"/>
</mets:div>
<mets:div LABEL="Pagina 61">
<mets:fptr FILEID="file.00064"/>
</mets:div>
<mets:div LABEL="Pagina 62">
<mets:fptr FILEID="file.00065"/>
</mets:div>
<mets:div LABEL="Pagina 63">
<mets:fptr FILEID="file.00066"/>
</mets:div>
<mets:div LABEL="Pagina 64">
<mets:fptr FILEID="file.00067"/>
</mets:div>
<mets:div LABEL="Pagina 65">
<mets:fptr FILEID="file.00068"/>
</mets:div>
<mets:div LABEL="Pagina 66">
<mets:fptr FILEID="file.00069"/>
</mets:div>
</mets:div>
Mickael Kay suggested:
<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, .)"/>
where
<xsl:function name="f:index-of-node" as="xs:integer*">
<xsl:param name="nodes" as="node()*"/> <xsl:param name="node"
as="node()"/> <xsl:for-each select="$nodes"> <xsl:sequence
select="position()[current() is $node]"/> </xsl:for-each>
</xsl:function>
to transform that one in this new list:
<mets:div LABEL="Canto XI" ORDER="13" ORDERLABEL="1">
<mets:div LABEL="Carta [59r]" ORDER="1"
ORDERLABEL="113">
<mets:fptr FILEID="file.00116"/>
</mets:div>
<mets:div LABEL="Carta [59v]" ORDER="2"
ORDERLABEL="114">
<mets:fptr FILEID="file.00117"/>
</mets:div>
<mets:div LABEL="Carta [60r]" ORDER="3"
ORDERLABEL="115">
<mets:fptr FILEID="file.00118"/>
</mets:div>
<mets:div LABEL="Carta [60v]" ORDER="4"
ORDERLABEL="116">
<mets:fptr FILEID="file.00119"/>
</mets:div>
<mets:div LABEL="Carta [61r]" ORDER="5"
ORDERLABEL="117">
<mets:fptr FILEID="file.00120"/>
</mets:div>
<mets:div LABEL="Carta [61v]" ORDER="6"
ORDERLABEL="118">
<mets:fptr FILEID="file.00121"/>
</mets:div>
<mets:div LABEL="Carta [62r]" ORDER="7"
ORDERLABEL="119">
<mets:fptr FILEID="file.00122"/>
</mets:div>
<mets:div LABEL="Carta [62v]" ORDER="8"
ORDERLABEL="120">
<mets:fptr FILEID="file.00123"/>
</mets:div>
<mets:div LABEL="Carta [63r]" ORDER="9"
ORDERLABEL="121">
<mets:fptr FILEID="file.00124"/>
</mets:div>
<mets:div LABEL="Carta [63v]" ORDER="10"
ORDERLABEL="122">
<mets:fptr FILEID="file.00125"/>
</mets:div>
<mets:div LABEL="Carta [64r]" ORDER="11"
ORDERLABEL="123">
<mets:fptr FILEID="file.00126"/>
</mets:div>
</mets:div>
i forgot to ask you how to exclude from the transformation
the first one of the list, in this case:
<mets:div LABEL="Pagina 59">
<mets:fptr FILEID="file.00116"/>
</mets:div>
is it possible? thx.
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--