Is there any function allowing to know the position of a
given attribute ?
In XPath 2.0 you can do count(../@*[.<<$given-attribute]).
In XSLT 1.0 you can do
<xsl:for-each select="$given-attribute/../@*">
<xsl:if test="generate-id(.) = generate-id($given-attribute)">
<xsl:value-of select="position()"/>
</xsl:if>
</xsl:for-each>
But of course all this does is tell you what order the system has
decided to put the attributes in, which isn't very useful information,
since it can put them in any order it likes.
Michael Kay
No.
example:
is it wright to write :
--------------------------------------------------------------------
<xsl:for-each select="element">
<xsl:if test="name(@[2])='type'">
<xsl:text> the postion of the type attribute is 2
No. Did you quess the syntax?
The thing is, attributes don't have positions, they're
unordered in the XPath data model. They might have an order
in the XML lexical representation, but in the XPath data
model they're unordered.
Cheers,
Jarno - <http://www.synthetic.org/play.html>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list