RE: last attribute ?

Subject: RE: last attribute ?
From: "Jarno Elovirta" <jarno@xxxxxxxxxxxxxx>
Date: Tue, 26 Sep 2000 15:36:50 +0300
> In source there is element:
> <test attrib1="test1" attrib2="test2" attrib3="test3">element</test>
> and I want attributes as:
> <testresult attributes="attrib1:test1, attrib2:test2,
> attrib3:test3>element</testresult>
> Ok, my problem is that ',' comma there. I need to separate attributes from
> each others using ',' but after last attribute (in this example
> attrib3:test3) there should be no ','. And these attributes are
> optional, so
> there can be more attributes (e.g. attrib4=test4) and there are no any
> specific order (attrib1 can come after attrib3).
> so how do I know if there is attributes left to handle in current element?


[c:\temp]type test.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<test attrib1="test1" attrib2="test2" attrib3="test3">element</test>

[c:\temp]type test.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"

<xsl:output method="xml" />

<xsl:template match="test">
    <xsl:attribute name="attributes">
      <xsl:apply-templates select="@*">
        <xsl:sort select="name()" />
    <xsl:value-of select="." />

<xsl:template match="test/@*">
        <xsl:value-of select="name()" />
  <xsl:value-of select="." />
  <xsl:if test="not(position() = last())">
          <xsl:text>, </xsl:text>


[c:\temp]saxon test.xml test.xsl
<?xml version="1.0" encoding="utf-8"?><testresult attributes="attrib1:test1,
attrib2:test2, attrib3:test3">element</testresult>



 XSL-List info and archive:

Current Thread