Subject: Re: [xsl] Keys (easy one) match on name() From: Karl Stubsjoen <kstubs@xxxxxxxxx> Date: Wed, 1 Jun 2005 06:26:09 -0700 |
Maybe that is where I have gone wrong, I assumed that the key definition is context aware. So to write the select expression as I have as "field" would suffice in the case that my context is record; the immediate context from record is field. I have written keys, and use them quite a bit, but this one's twist is the fact that I am driving off on the name attribute. > key_fld of 'NeedCode'. Your expression that uses the predicate directly only > selects the field elements that are children of the context node. Without So, If the current context is "record", where "record" has a bunch of "field"(s) for child elements, shouldn't this key lookup work? <xsl:key name="key_fld" match="field" use="@name"/> On 6/1/05, Michael Kay <mike@xxxxxxxxxxxx> wrote: > 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Keys (easy one) match on , Michael Kay | Thread | [xsl] First Element in Sorted List, John |
RE: [xsl] A sequence of more than o, Andrew Welch | Date | [xsl] First Element in Sorted List, John |
Month |