RE: [xsl] Keys (easy one) match on name()

Subject: RE: [xsl] Keys (easy one) match on name()
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 1 Jun 2005 08:44:57 +0100
Using key() returns all the field elements in the document that have a
key_fld of 'NeedCode'. Your expression that uses the predicate directly only
selects the field elements that are children of the context node. Without
knowing what the context node (or anything else in your source document)
looks like, one can't be sure that's the problem, but it seems likely.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Karl Stubsjoen [mailto:kstubs@xxxxxxxxx] 
> Sent: 01 June 2005 06:05
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Keys (easy one) match on name()
> 
> I have this key:
>     <xsl:key name="key_fld" match="field" use="@fieldname"/>
> 
> 
> I set this variable:
> <xsl:variable name="current_need" select="key('key_fld','NeedCode')"/>
> 
> I get:
> HI
> 
> Without the key, I get the correct value of:
> MD
> 
> Here is the definition without the key:
> <xsl:variable name="current_need" 
> select="field[@fieldname='NeedCode']"/>
> 
> What am I doing wrong?
> 
> 
> On 5/31/05, Mukul Gandhi <mukul_gandhi@xxxxxxxxx> wrote:
> > Would it be -
> > 
> > <xsl:key name="key_fld" match="field" use="@name"/>
> > 
> > Regards,
> > Mukul
> > 
> > --- Karl Stubsjoen <kstubs@xxxxxxxxx> wrote:
> > > I have a bunch of <field/> elements who all contain
> > > the attribute
> > > name.  How do I set up a key to return the field
> > > element passing given
> > > name?
> > >
> > > I've tried this, but doesn't seem to work:
> > >
> > >     <xsl:key name="key_fld" match="field"
> > > use="name()"/>
> > >
> > > I've also tried:
> > >
> > >     <xsl:key name="key_fld" match="field"
> > > use="@*[name()]>
> > >
> > > Thanks for the help.
> > >
> > >
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com

Current Thread