[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: copy all attributes but one

Subject: Re: copy all attributes but one
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Thu, 18 Jan 2001 09:13:45 +0000
xsl copy all attributes
Hi Chris,

> I tried the same for attributes, but this doesn't work - it copies all
> attributes:
>
>     <xsl:copy-of select="@*[not(attribute::DoNotCopyAttribute)]" />

In this XPath, you are saying:

  get a list of all the attributes on the current node, and filter it
  to include only those that do not have an attribute called
  DoNotCopyAttribute

Now, attributes can't have attributes, so the predicate always returns
true, and you get all the attributes.

The self:: axis that you use to test the name of elements doesn't work
because self::* only matches elements, so you also can't do:

   <xsl:copy-of select="@*[not(self::DoNotCopyAttribute)]" />

This will say:

  get a list of all the attributes on the current node, and filter it
  to include only those that are not themselves DoNotCopyAttribute
  elements

Attributes can never be elements, so the predicate always returns
true, and you get all the attributes.

The best way around it that I've seen is to locate the relevant
attribute and test whether the current attribute is the same node.  If
it is, then you don't want it; if it isn't, then you do.  So:

   <xsl:copy-of select="@*[generate-id(.) !=
                           generate-id(../@DoNotCopyAttribute)]" />

or:

   <xsl:copy-of select="@*[count(.|../@DoNotCopyAttribute) !=
                           count(../@DoNotCopyAttribute)]" />

whichever you find easiest to read or is quicker with your processor.

I hope that helps,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.