Subject: Re: [xsl] filter using contains with multiple values From: "Raimund Kammering raimund.kammering@xxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 3 Mar 2016 19:00:42 -0000 |
okay got that point (parenthesis). But still that does not work for me since somehow the string in filter_value is not understood as sequence! So if I now use: <xsl:if test="*[name()= $filter and . = $filter_value]b> or as Michael suggested <xsl:if test="*[name()= $filter][. = $filter_value]b> it only matches the first of the two in the sequence if I use <xsl:param name="filter_value" as="xs:string*" select="'Log', bInfo'b/> to pass the parameter! Even an: <xsl:value-of select=b$filter_valueb/> only returns: bLogb where I would expect it to return the whole parameter! I seem to still miss some crucial point in making filter_value being understood as sequence here!? > Sorry, the expression needs parenthesis > > <xsl:if test="*[name()=$filter and (some $value in $filter_values satisfies contains(., $value))]b> > > >> <xsl:param name="filter_values" as="xs:string*" select="'Log', 'Info'b/> > > If you want a comparison with "=" then you can simply use > > <xsl:if test="*[name()= $filter and . = $filter_values]"> > > as the "=" comparison between a value and a sequence is true if there is at least one item in the sequence that is equal to the value. The `some` expression is only needed if you want the contains check.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] filter using contains wit, Martin Honnen martin | Thread | Re: [xsl] filter using contains wit, Graydon graydon@xxxx |
Re: [xsl] filter using contains wit, Martin Honnen martin | Date | Re: [xsl] filter using contains wit, Graydon graydon@xxxx |
Month |