xsl-list
[Top] [All Lists]

Re: [xsl] Determining if an optional attribute is present

2006-10-17 10:37:08
On 10/17/06, David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:


<xsl:template match="Method|Cal|Blank">
  <xsl:element name="{name()}">
    <xsl:attribute name="objectID"><xsl:value-of
select="@objectID"/></xsl:attribute>
    <xsl:attribute name="version"><xsl:value-of
select="@version"/></xsl:attribute>
    <xsl:attribute name="revision">
      <xsl:if test="@revision != ''">
        <xsl:value-of select="@revision"/>
      </xsl:if>
      <xsl:if test="not(@revision)">
        <xsl:text>0</xsl:text>
      </xsl:if>
    </xsl:attribute>
<!-- the line below isn't the best either.  I simply need to copy over
all the children nodes, is there a better way? -->
    <xsl:apply-templates mode="copyNode"/>
  </xsl:element>
</xsl:template>

I'd do


<xsl:template match="Method|Cal|Blank">
  <xsl:copy>
 <xsl:attribute name="revision">0</xsl:attribute>
  <xsl:copy-of select="@objectID|@version|@revision|node()"/>
  </xsl:copy>
</xsl:template>

David,

I like the simplicity of using the copy/copy-of, that works GREAT and
the revision almost works perfectly.  At first I did not think it was
there, but after some playing around I discovered that it was there,
it just happened to be the first attirbute, not the last:

What I got:

<Method revision="4" objectID="85e29107-4686-4846-86b3-2280ab4157c9"
version="1"/>

What I would like to have in an idea world:

<Method objectID="85e29107-4686-4846-86b3-2280ab4157c9" version="1"
revision="4" />

Is that possible or must I be a little less anual on this one;)

Sam
--
Miltonstreet Photography
http://www.miltonstreet.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--