ho un xml fatto in questo modo

codice:
<datiInput>
  <utente>
    <nome>Marco</nome>
    <cognome>Rossi</cognome>
    <sesso>Maschio</sesso>
  </utente>
</datiInput>
con N nodi di questo tipo al suo interno (ovviamente con dati diversi). Come faccio a rappresentare prima tutti gli uomini e poi tutte le donne nel XML trasformato attraverso XSL ?

per ora ho questo

codice:
<xsl:template match="/">
  <nomi>
    <xsl:apply-templates select="datiInput/utente/nome">
    </xsl:apply-templates>
  </nomi>
  <cognomi>
    <xsl:apply-templates select="datiInput/utente/cognome">
    </xsl:apply-templates>
  </cognomi>
</xsl:template>

<xsl:template match="nome">
  <nome><xsl:value-of select="."/></nome>
</xsl:template>
<xsl:template match="cognome">
  <cognome><xsl:value-of select="."/></cognome>
</xsl:template>
ho capito che dovrei usare un xsl:if o un xsl:choose ma non ho ben capito il punto giusto dove metterli...

grazie mille!