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

Re: [xsl] xsl value-of


Subject: Re: [xsl] xsl value-of
From: "Joerg Heinicke" <joerg.heinicke@xxxxxx>
Date: Tue, 2 Apr 2002 19:57:19 +0200

> <xsl:key name="labels" match="xml/group/questionAnswered/label/text()"
> use="concat(xml/group/@id, '_', xml/group/questionAnswered/label/@id)" />

You have to match on label and not its text-node. From this node you can go
back to the group-element, choose its @id and the @id of the current
label-element:

<xsl:key name="labels" match="label" use="concat(../../@id, '_', @id)"/>

The more specific XPATH "xml/group/questionAnswered/label" you only need
when there are more <label>s in your file, you want to exclude from the
<xsl:key>.

Hope this helps,

Joerg

----- Original Message -----
From: "Matias Woloski" <woloski@xxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Tuesday, April 02, 2002 7:21 PM
Subject: RE: [xsl] xsl value-of


> Jeni, thanks for your response...
>
> I created a key in the top of the document
>
> <xsl:key name="labels" match="xml/group/questionAnswered/label/text()"
> use="concat(xml/group/@id, '_', xml/group/questionAnswered/label/@id)" />
>
> but when trying to access the key I get nothing
>
> <xsl:for-each select="z:row">
> <xsl:value-of select="key('labels', concat($groupId, '_', @id))" />
> </xsl:for-each>
>
> I tried by harcoding a key but nothing
> <xsl:value-of select="key('labels', '02_05')" />
>
> I think the keys are not being created...
>
> any ideas?
>
> thanks,
> Matias
>
> > -----Original Message-----
> > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Jeni Tennison
> > Sent: martes, 02 de abril de 2002 11:07
> > To: Matias Woloski
> > Cc: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: Re: [xsl] xsl value-of
> >
> >
> > Hi Matias,
> >
> > > So how can i reach the text attribute of the label element according
> > > the id of the label and the id of the z:row?
> >
> > The easiest thing to do is to create a key that indexes the label
> > elements by their id:
> >
> > <xsl:key name="labels" match="label" use="@id" />
> >
> > You can then, for example, get the label element whose id is 03 using:
> >
> >   key('labels', '03')
> >
> > So if the current node is a z:row element, you can get the value of
> > the label that has the same id as the id of the z:row element using:
> >
> >   <xsl:value-of select="key('labels', @id)" />
> >
> > (Note that you were after the "string value" of the label, or its text
> > node child, not the "text attribute" -- the label elements in your
> > example didn't have any attributes called 'text'.)
> >
> > Cheers,
> >
> > Jeni
> >
> > ---
> > Jeni Tennison
> > http://www.jenitennison.com/
> >
> >
> >  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> >
>
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords