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]

XPath for number of preceding nodes sharing an ancestor


I want to count the number of preceding nodes that share an ancestor node.

I have a document like this:

<?xml version="1.0"?>
<module>
  <inputform>
    <title>
      <input>
        <!-- etc. -->
      </input>
    </title>
    <introduction>
      <input>
        <!-- etc. -->
      </input>
    </introduction>
  </inputform>
  <!-- More inputform and other elements. -->
</module>

When each input element is processed I need a unique number within the
inputform node.

My XSL includes:

<xsl:template match="input">
  <xsl:variable name="input-count"
    select="count(preceding::input[ancestor::inputform =
current()/ancestor::inputform]) + 1"/>
  <!-- Do stuff with $input-count. -->
</xsl:template>

This works but the XPath in the select attribute of xsl:variable feels a
bit clumsy. Is there a better way or am I feeling worried because it is
rather wordy?

Thanks in advance.

-- 
Michael Strasser
Brisbane, Australia

 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]