Subject: Re: [xsl] XPath shorthand From: Ihe Onwuka <ihe.onwuka@xxxxxxxxxxxxxx> Date: Wed, 22 Aug 2012 14:22:15 +0100 |
On Tue, Aug 21, 2012 at 8:28 PM, Andrew Welch <andrew.j.welch@xxxxxxxxx> 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).
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath shorthand, Andrew Welch | Thread | Re: [xsl] XPath shorthand, Michael Müller-Hille |
Re: [xsl] The Holy Trinity of Funct, David Carlisle | Date | RE: [xsl] Pattern Matching in XSl -, Kerry, Richard |
Month |