xsl-list
[Top] [All Lists]

Re: [xsl] Filter out elements that have one specific sub-element and nothing else

2007-02-22 05:59:37
On 2/22/07, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
> I created a test sheet that tried all suggested methods, all
> seem to work.
>
> The big question now: which one would be the most efficient
> (fastest) one?

A bigger question is whether they are all correct. This one at least seems
wrong, because it has no check for text nodes:

listitem[formatinfo][count(child::*) = 1]

Yes - I missed the "or text" part of "no other element or
text".  As the OP said it seemed to work, so they didn't spot it
either...  It goes to show how easy it is to create incorrect results
that look right with XSLT.

Btw, shouldn't your suggestion of:

select="listitem[node()[last()=1][self::formatinfo]]"

really need to be as a template match rather than select:

match="listitem[node()[last()=1][self::formatinfo]]"

?

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