Please forgive my ignorance, I realized that the result of the function key(), even if it is a single node, has no context nodeset. Hence the position() function cannot return anything. But the error message is not explicit at all...
S. Stéphane Mottelet a écrit : > Hi folks, I am encoutering a problem when using the > function position() with the result of a key(). > > Here is the xml file to process : > > <?xml version="1.0" encoding="ISO-8859-1"?> > <doc> > <a id="first"/> > <a id="second"/> > </doc> > > Here is the stylesheet : > > <?xml version="1.0" encoding="ISO-8859-1"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > <xsl:output method="xml" indent="yes" encoding="ISO-8859-1"/> > <xsl:key name="match_a" match="a" use="@id"/> > > <xsl:template match="/"> > <xsl:apply-templates/> > </xsl:template> > > <xsl:template match="doc"> > <result> > <xsl:value-of select="position(key('match_a','second'))"/> > </result> > </xsl:template> > </xsl:stylesheet> > > Here is what i got when launching the transformation : > > portmottelet-hz-1:~$ xsltproc test.xsl test.xml > XPath error : Invalid number of arguments > runtime error: file test.xsl line 16 element value-of > xsltValueOf: text copy failed > no result for test.xml > > Is it a bug, or am I missing something. I would expect to get the result : > > <result>2</result> > > Thanks for help > > Using libxml 20616, libxslt 10111 and libexslt 809 > xsltproc was compiled against libxml 20616, libxslt 10111 and libexslt 809 > libxslt 10111 was compiled against libxml 20616 > libexslt 809 was compiled against libxml 20616 > > _______________________________________________ > xslt mailing list, project page http://xmlsoft.org/XSLT/ > [email protected] > http://mail.gnome.org/mailman/listinfo/xslt > _______________________________________________ xslt mailing list, project page http://xmlsoft.org/XSLT/ [email protected] http://mail.gnome.org/mailman/listinfo/xslt
