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