The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<stx:transform version="1.0" 
  xmlns:stx="http://stx.sourceforge.net/2002/ns"
  strip-space="yes">

  <stx:variable name="list" select="0"/>
  <stx:variable name="li" select="0"/>

  <stx:template match="/root">
    <stx:copy>
      <stx:process-children/>
      <list-total count="{$list}"/>
      <li-total count="{$li}"/>
    </stx:copy>
  </stx:template>

  <stx:group>

  <stx:variable name="li-in-list" select="0"/>
  <stx:variable name="level" select="0" keep-value="yes"/>

    <stx:template match="list" public="yes" new-scope="yes">
      <stx:assign name="list" select="$list + 1"/>
      <stx:assign name="level" select="$level + 1"/>
      <stx:variable name="list-no" select="$list"/>
      <stx:process-children/>
      <list no="{$list-no}" count="{$li-in-list}" level="{$level}"/>
    </stx:template>

    <stx:template match="li">
      <stx:assign name="li" select="$li + 1"/>
      <stx:assign name="li-in-list" select="$li-in-list + 1"/>
    </stx:template>
    
  </stx:group>
  
</stx:transform>