RE: [xsl] new: how to change value of attributes

Subject: RE: [xsl] new: how to change value of attributes
From: "ivanmacculi\@libero\.it" <ivanmacculi@xxxxxxxxx>
Date: Fri, 27 Nov 2009 18:09:38 +0100
I've problems with Michael Kay suggestion:
1) Oxygen tells me to declare f: namespace and xs: namespace:
<xsl:function name="f:index-of-node" as="xs:integer*">.

2) <xsl:template match="*[. intersect $g]/@LABEL"> is open but not closed.
Where can i close it? thank you so much.


>
> An idiom I have used in such cases is:
>
> <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>
>
> which still isn't ideal, but it feels a bit better.
>
>
> Regards,
>
> Michael Kay
> http://www.saxonica.com/
> http://twitter.com/michaelhkay

Current Thread