|
Subject: Re: [xsl] Re: topological sort From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Fri, 5 Jan 2001 10:35:40 +0000 |
Hi Joerg,
> Can one of the gurus please comment on the
> "count(field/type/ref)=count(...)"
I'm sure David C. will have posted by the time this gets out, but what
the hey. The full XPath is:
struct[not($processed/name=name)
and count(field/type/ref)=count(field/type/ref[$processed/name=.])]
and the bit that you want commenting on is:
count(field/type/ref) = count(field/type/ref[$processed/name = .])
What this does is test whether the number of field/type/refs in the
struct is the same as the number of field/type/refs in the struct
whose content is the same as one of the $processed/names. In other
words, do all the field/type/refs in the struct have a value equal to
one of the $processed/names.
This will be false if any of the field/type/refs in the struct have a
value that is not equal to one of the $processed/names. Or, if there
are any field/type/refs in the set:
field/type/ref[not(. = $processed/name)]
So your construct count be replaced by:
not(field/type/ref[not(. = $processed/name)])
I'm not sure whether this will be more efficient - it probably depends
on the processor. An optimised processor might be able to stop after
finding just one field/type/ref whose value isn't a processed name,
rather than having to collate all the field/type/refs for counting
once, then collecting all those that have been processed for counting
again. Probably the best thing is to try and see.
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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Re: topological sort, Joerg Pietschmann | Thread | Re: [xsl] Re: topological sort, Joerg Pietschmann |
| RE: [xsl] conditional processing, Kay Michael | Date | Re: [xsl] Question about Context Ch, David Carlisle |
| Month |