xsl-list
[Top] [All Lists]

Re: [xsl] matching attribute values that are in range

2006-07-19 14:44:55

andrew welch wrote:

On 7/19/06, Jeff Sese <jsese(_at_)asiatype(_dot_)com> wrote:

Thanks andrew and florent this helped a lot. What i used was:

document('source2.xml')/entry[(_at_)id=current()/@id and
@type=current()/@type and (@n=current()/@n or @n[matches(.,'-') and
number(substring-before(.,'-')) &lt;= current()/@n and
number(substring-after(.,'-')) >= cunrrent()/@n])]


Was obfuscation part of the requirements? :-)

Seriously, you could do with a few variables in there...


How about?

<xsl:variable name="min" select="number(substring-before(.,'-'))" />
<xsl:variable name="max" select="number(substring-after(.,'-'))" />
<xsl:variable name="id" select="current()/@id" />
document('source2.xml')/entry[
       (@id=current()/@id)
and (@type=current()/@type)
and ((@n=current()/@n)
    or @n[matches(.,'-')
               and ($min &lt;= current()/@n)
               and ($max &gt;= current()/@n)]
  )
]

Fixed typo ('cunrrent'), added brackets for clarity, replaced '>' with '&gt;'


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