Problema en código para realizar un xslt contando los nodos de árbol xml

Tengo que contar los nodos de un fichero XML:

<gente>
<persona nacimiento="1930" fallecimiento="2010" id="1">
<nombreape>
<nombre>John</nombre>
<apellidos>Doe</apellidos>
</nombreape>
<profesion>Ingeniero</profesion>
<profesion>Abogado</profesion>
<profesion>Sepulturero</profesion>
</persona>
<persona nacimiento="1911" fallecimiento="1986" id="2">
<nombreape>
<nombre>Ron</nombre>
<apellidos>Hubbard</apellidos>
</nombreape>
<profesion>Marino</profesion>
<aficiones>Proselitista</aficiones>
</persona>

Y conseguir este salida:

Persona: 1 de 2: John
Numero de profesiones: 3
Persona: 2 de 2: Ron
Numero de profesiones: 1

Hasta ahora tengo este código:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="/gente/persona"/>
</xsl:template>
<xsl:template match="/gente/persona">
Persona: <xsl:number value="position()" format="1"/> de
<xsl:value-of select="count(/gente/persona)"/>:
<xsl:value-of select="/gente/persona/nomberape/nombre"/>
Número de profesiones: <xsl:value-of select="count(profesion)"/>
<xsl:apply-templates select="/gente/persona/nombreape/nombre"/>
</xsl:template>
</xsl:template>
</xsl:stylesheet>

Pero me da los datos mal

Persona: 1 de 2: Número de profesiones: 3JohnRon Persona: 2 de 2: Número de profesiones: 1JohnRon

Añade tu respuesta

Haz clic para o