[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Rule from param and 2 Vals for keys


Subject: RE: [xsl] Rule from param and 2 Vals for keys
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 21 Mar 2005 15:23:38 -0000

> > key match="field" use="concat(../../@rsname, '#', ., '#', 
> @fieldname)"
> > 
> > and then replace the above expression with
> > 
> > key('k', concat('ABC', '#', 'xxx', '#', 'DEF'))
> 
> Errr... I'm not sure what you concat and key solution you provided
> accomplishes.  What I was hoping to accomplish with:
> 
> > > 
> /root/recordset[@rsName='ABC']/record[field[@fieldname='DEF'] = 'xxx']
> 
> ABC, supplied rsName value to match.  So, rsName = "membership" or
> rsName="student" or rsName = "ABC".

You used strings such as 'ABC' as example values, so I reckoned I could do
the same. Just substitute with the actual values you want to search for,
e.g.

key('k', concat('student', '#', 'Smith', '#', 'Last_Name'))>

Michael Kay
 

> 
> Same with "xxx", so now you have (spoken in english) and using
> membership and Last_Name to replace ABC and DEF respectfully the
> following:
> 
> "Return the record from the recordset who's name is "memberships" and
> who's field "Last_Name" = "Smith".
> 
> I hope that clarifies things better.
> 
> Karl
> 
> 
> On Sat, 19 Mar 2005 10:12:25 -0000, Michael Kay 
> <mike@xxxxxxxxxxxx> wrote:
> > > Hello,
> > > Is it possible to invoke a select or test or other xpath 
> query from
> > > the value found within a variable or param?
> > 
> > You need an extension such as saxon:evaluate() or 
> dyn:evaluate in EXSLT.
> > >
> > > - ALSO -
> > >
> > > How can you create a key for the following, where "ABC" 
> and "XYZ" and
> > > "xxx" are all the values I'd like to supply to the key 
> for matching:
> > >
> > > 
> /root/recordset[@rsName='ABC']/record[field[@fieldname='DEF'] = 'xxx']
> > >
> > 
> > I'm not sure I understand the question. But you can define a key
> > 
> > key match="field" use="concat(../../@rsname, '#', ., '#', 
> @fieldname)"
> > 
> > and then replace the above expression with
> > 
> > key('k', concat('ABC', '#', 'xxx', '#', 'DEF'))
> > 
> > Michael Kay
> > http://www.saxonica.com/


Current Thread
Keywords