xsl-list
[Top] [All Lists]

Re: [xsl] better way to say "all attrs except"?

2012-02-05 21:38:08
On Sun, Feb 05, 2012 at 10:30:15PM -0500, Syd Bauman scripsit:
For years I've used expressoins like
   @*[not(name(.)='xml:id' or name(.)='rend')]
to ask for all of the attributes *except* xml:id= or rend=. And some
time ago Jeni recommended essentially the same approach.[1] But I'm
wondering if that isn't an XPath 1-ish way to do things, and if there
isn't a nicer way to get the same set when using XSLT 2 (and thus can
make use of XPath 2).

@* except (@xml:id,@rend)

is how that goes in XSLT 2.

(or @*[name(.) != ('xml:id','rend')] if you're preferential toward the
predicate, but the except is the way to go, since that's an actual node
test and keeps you out of the stringy land of names.)

The only tricky thing I've so far noticed about 'except' is that it
doesn't always affect the implicit context of position() just how you
would expect without the write-stuff-down-and-stare-at-it step.

-- Graydon

--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>