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: Maybe newbie...


Hi Antonio,

> I think that using two nested for-each is quite dirty in my case, as
> a very similar effect could be achieved with a <xsl:for-each
> select="alarm/problemtype">.
>
> However, when using that one, position() is not 1, 2, 1, 2 but 1, 2,
> 3, 4, so the third line does not show the dates, where it should.
>
> I know I can substitute position by something else, but... what?

You could test whether the particular problemtype element has a
preceding sibling problemtype element; if it doesn't, then it's the
first within the particular alarm element:

  <xsl:for-each select="alarm/problemtype">
    <tr>
      <xsl:choose>
        <xsl:when test="preceding-sibling::problemtype">
          <td></td><td></td>
        </xsl:when>
        <xsl:otherwise>
          <td><xsl:value-of select="../@start" /></td>
          <td><xsl:value-of select="../@end" /></td>
        </xsl:otherwise>
      </xsl:choose>
      <td><xsl:value-of select="@qty" /></td>
      <td><xsl:value-of select="@type" /></td>
    </tr>
  </xsl:for-each>

It doesn't save you much though; might even make the transformation
marginally slower (it's easier to check the position of the current
node than it is to check the preceding sibling of the current node, I
think).
  
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]