This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Multiple attributes present and non-present
- From: David Carlisle <davidc at nag dot co dot uk>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Mon, 4 Mar 2002 18:48:34 GMT
- Subject: Re: [xsl] Multiple attributes present and non-present
- References: <20020304182215.11897.qmail@web10107.mail.yahoo.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
> Should I use a different method?
xsl:copy-of select="@*" is the standard way of copying all
attributes.
However You can simplify
<xsl:template match="PERSNAME">
<xsl:element name="PERSNAME">
to either
<xsl:template match="PERSNAME">
<xsl:copy>
or
<xsl:template match="PERSNAME">
<PERSNAME>
and you can simplify
<xsl:copy-of select="@*"/>
<xsl:copy-of select="node()"/>
to
<xsl:copy-of select="@*|node()"/>
actually if that was exactly what you wanted, you are just copying an
entire element, so you could further simplify to
<xsl:template match="PERSNAME">
<xsl:copy-of select="."/>
</xsl:template>
Or, since that is the only template, your stylesheet becomes
<HEY xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
<xsl:copy-of select="//PERSNAME"/>
</HEY>
however that's probably an over simplification in your real eaxmple,
so going back to the PERSNAME template it seems you don't want everything
Also it would be nice not to have the empty attributes
so
<xsl:template match="PERSNAME">
<xsl:copy-of select="@*[not(.='')]|node()"/>
</xsl:template>
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list