xsl-list
[Top] [All Lists]

Re: [xsl] Variable in XPath

2007-06-27 10:42:28
Garvin Riensche wrote:
Hi Abel,

Thanks a lot for you answer, you gave lots of comments that are usefull for me.

Your solution defintely serves my needs I explained in my first mail. But as I wrote in my second mail there might be lots of attribute-combinations. So I would have to write a template for every possible combination which would make the stylesheed get very large. Maybe that's the only solution. But I would prefer a solutions with one template for all possible combinations like explained in my second mail with some default value for the variables that are not set by commandline.


In addition, if you want an extensible solution, you can consider this as parameter value:

id=2;owner=4;name=john

in which case you do not have to create a new parameter each time you add a new query possibility to your template. You match would then look as follows:

<xsl:variable name="attributes" select="tokenize($query, ';')" />
<xsl:variable name="attr-names"
       select="for $i in $attributes return tokenize($i, '=')[1]" />
<xsl:variable name="attr-values"
       select="for $i in $attributes return tokenize($i, '=')[2]" />


<xsl:template match="class[
      deep-equals(@*/name(), $attr-names) and
      deep-equals(@*string(), $attr-values)]" />

  ... do your thing with the matches ...
</xsl:template>


Come to think of it, this is probably a shorter solution in the long run ;)

Happy coding!

-- Abel Braaksma

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