Subject: Re: Selecting First Letter
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Tue, 30 Sep 2003 21:30:34 +0200
|
Hi Wendell,
> Not foolproof, but
>
> match="text()[starts-with(ancestor::p,.)]"
>
> would usually work (and would most probably perform better).
>
> So today's XSLT Challenge is to write a better match for this problem.
>
This is a nice match pattern, but I think it must be:
text()[starts-with(ancestor::p[1],.)]
Also, evaluating it might be somewhat inefficient in cases when a "p" has
many text-node descendents.
Due to this consideration I would propose:
text()[generate-id()
=
generate-id(ancestor::p[1]/descendant::text()[1])
]
Of course, for this to work whitespace-only nodes must be stripped by a
<xsl:strip-space elements="*"/>
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|