This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: parent and ..
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: Matts Isuls <matts dot isuls at AGROLINK dot FI>
- Cc: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 19 Mar 2002 09:42:47 +0000
- Subject: Re: [xsl] parent and ..
- Organization: Jeni Tennison Consulting Ltd
- References: <E18972FDE634D611A4670030847664620B1944@AGROSERVER>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Matts,
> Output is '111'. Same result when select="parent::node()/cell/@pos"
> and select="../cell/@pos". But how do i get '123'?
In your code, you process each cell element in turn. For each cell,
you get the value of it's parent (row) element's child cell element's
pos attribute. There are several such pos attributes, and when you
select lots of nodes for xsl:value-of, it only gives you the value of
the first one. So you get the first pos attribute over and over again.
It sounds, though, as if you want the pos attribute *of the cell
you're on*. That being the case, there's no need to go up to any
parent, because you're already on the node that's holds the relevant
attribute. So you can just do:
<xsl:for-each select="row/cell">
<xsl:value-of select="@pos"/>
</xsl:for-each>
If you were selecting the *data* elements instead, then you'd need to
go up to the parent cell and then to its pos attribute:
<xsl:for-each select="row/cell/data">
<xsl:value-of select="../@pos" />
</xsl:for-each>
or:
<xsl:for-each select="row/cell/data">
<xsl:value-of select="parent::cell/@pos" />
</xsl:for-each>
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list