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.
|