xsl-list
[Top] [All Lists]

Re: [xsl] XPath shorthand

2012-08-22 08:22:35
On Tue, Aug 21, 2012 at 8:28 PM, Andrew Welch 
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> wrote:
In the end I went with

<xsl:key name="desired_fields"
match="m__id[1]|m__name[1]|m__path[1]|m__enabled[1]"
use="local-name()"/>

and

following-sibling::*[key('desired_fields',local-name())]

Why do that?


Because then all my end-user has to do if he wants to change the
fields being retrieved is add (or subtract) the relevant element name
from the match pattern.

..in which case:

<xsl:variable name="names" select="('m__id', 'm__name',
'm__path'....)" as="xs:string+"/>

with

following-sibling::*[local-name() = $names]


Yes I didn't think of this but there are two things.

This won't work in a template match on XSLT 1.0 and it is hiding
multiple comparisons under the innocent looking equality general
comparison which may bite on large volumes.

Unfortunately I don't have the volume of data to benchmark the keys
solution vs the variable solution.

 I presume your preference for variables is based on better
performances (at least until volumes start to get large).

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