This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: parent and ..


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]