[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Re: position last and attributes

Subject: [xsl] Re: position last and attributes
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxxxxxxx>
Date: Wed, 26 Sep 2012 12:19:11 +0100

On Thu, Sep 20, 2012 at 7:13 AM, Ihe Onwuka <ihe.onwuka@xxxxxxxxxxxxxx> wrote:
> It would seem (somewhat paradoxically) that given the definition of
> position() and last() they could be applied to @* which is
> intrinsically unordered.

So seeking to output all the attributes of an element comma separated
(by all means correct me if I miss the obvious).

If I have done apply-templates select="@*" and have

<xsl:template match="@*">
     < code to output the attribute>
     <!-- do I put a comma or not -->
     <xsl:if test=". is ../@*[last()]>,</xsl:if>

the specification doesn't guarantee that ../@* is in the same order of
the node-set returned by @* when the apply-templates was done.

So either I have to put the @* in a variable and do my if test on that
to ensure I am dealing with the same node-set  or I match on the
parent element instead of @* and for-each through  @* and decide where
to put my commas that way.

Or have I got that wrong.

Current Thread