Is empty equal to not exist?
a="" is an existing attribute node with string value empty.
If you want to copy attribute a if it exists and do nothing otherwise,
If you only want to copy a if its value is non empty then that is
<xsl:copy-of select="@a[. != '']"/>
[. != ''] is, as you say, the same as [string(.) != '']
it is also the same as [string(.)] as in a boolean predicate the string
will be taken as true if it is non empty and false if it is empty.
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list