xsl-list
[Top] [All Lists]

Re: [xsl] Fwd: xsl:key() and $variables.

2006-07-21 19:22:31
On Fri, 21 Jul 2006 18:42:29 -0400
Steve <subsume(_at_)gmail(_dot_)com> wrote:

---------- Forwarded message ----------
From: Steve <subsume(_at_)gmail(_dot_)com>
Date: Jul 20, 2006 3:41 PM
Subject: xsl:key() and $variables.
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com


I have a variable containing

<Records>
   <Record>
      <activity>Baseball</
      <hours>36</
   <Record>
      <activity>Shopping</
      <hours>39</
   <Record>
      <activity>Writing</
      <hours>3</
    ......etc  (yes, I know they're not closed.)

and some xml (document('../blah.xml') containing...

<activities>
    <activity neccesary="no">Baseball</
    <activity neccesary="no">Shopping</
    <activity neccesary="yes">Writing</

..............

How do I  <xsl:apply-templates select="$variable/Records/Record[1]" />
only those records which are neccesary="yes"  ?

First, I don't think XSLT was designed to do SQL style joins. It's not
a database API.

But. That doesn't mean you can't do it.

You could do a call-template() that does for-each on
activities/activity[(_at_)necessary='yes'] and return the Record that has an
activity/text() equal to the desired activity.

I swear one of these posts I'll have xsl:key figured out.

I've never heard of xsl:key but the second illustration here:

 http://www.cranesoftwrights.com/resources/xslkeys/index.htm

looks useful. It seems an xsl:key is like a variable containing
a list of elements that match the xpath expression. But the key()
function allows you to filter on that list further by providing a key
(overloaded term warning). So in the above illustration the xsl:key
statement builds a list of Employee elements and indicates that the SSN
child should be used when a key is supplied to the key() function. So
the key('people',@emp) call says, "fetch all elements in the 'people'
list using the SSN @emp. Presumably each Employee would have a unique
SSN and therefore the key() call will return one Element.

Mike

-- 
Michael B Allen
PHP Extension for SSO w/ Windows Group Authorization
http://www.ioplex.com/

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