Código XML:
Ver original
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE recursos SYSTEM "recursos.dtd"> <recursos> <recurso> <descripcion>Consorcio W3C</descripcion> <tipo> <externo url="http://www.w3c.es/"/> </tipo> <idioma>Inglés</idioma> <contenido> <General/> </contenido> <unidad>2</unidad> </recurso> <recurso> <descripcion>Especificación HTML</descripcion> <tipo> <externo url="http://html.conclase.net/w3c/html401-es/cover.html"/> </tipo> <idioma>Castellano</idioma> <contenido> <HTML /> </contenido> <version>4.01</version> <unidad>2</unidad> </recurso> <recurso> <descripcion>Enunciado práctica 3</descripcion> <tipo> <interno fichero="./locales/Practica3_200708.pdf"/> </tipo> <idioma>Castellano</idioma> <contenido> <PHP/> </contenido> <unidad>4</unidad> </recurso> <recurso> <descripcion>W3C DOM</descripcion> <tipo> <externo url="http://www.w3.org/DOM/"/> </tipo> <idioma>Inglés</idioma> <contenido> <DOM /> </contenido> <version>Level 3</version> <unidad>3</unidad> </recurso> </recursos>
Ahora bien, tengo que crear un XSLT, que:
• Ordena ascendentemente por unidad.
• Ordena ascendentemente por contenido.
• Ordena ascendentemente por tipo.
Y lo guarde en un XML.
He creado este XSLT pero no consigo realizarlo alguien sabría como explicarme?
Código XSLT:
Ver original
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- Metodo de salida --> <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <xsl:for-each select="recursos/recurso"> <recurso> <descripcion><xsl:value-of select="descripcion" /></descripcion> <tipo> <xsl:choose> <xsl:when test="tipo/externo"> <externo url="<xsl:value-of select="tipo/externo/@url" />" /> </xsl:when> <xsl:otherwise> <interno fichero="<xsl:value-of select="tipo/interno/@fichero" />" /> </xsl:otherwise> </xsl:choose> </tipo> <idioma><xsl:value-of select="idioma" /></idioma> <contenido> <xsl:choose> <xsl:when test="contenido/General"> <<xsl:value-of select="contenido/."/>/> </xsl:when> <xsl:when test="contenido/HTML"> <<xsl:value-of select="contenido/."/>/> </xsl:when> <xsl:when test="contenido/CSS"> <<xsl:value-of select="contenido/."/>/> </xsl:when> <xsl:when test="contenido/XML"> <<xsl:value-of select="contenido/."/>/> </xsl:when> <xsl:when test="contenido/JavaScript"> <<xsl:value-of select="contenido/."/>/> </xsl:when> <xsl:when test="contenido/DOM"> <<xsl:value-of select="contenido/."/>/> </xsl:when> <xsl:when test="contenido/PHP"> <<xsl:value-of select="contenido/."/>/> </xsl:when> </xsl:choose> </contenido> <xsl:if test="version"> <version><xsl:value-of select="version" /></version> </xsl:if> <unidad><xsl:value-of select="unidad" /></unidad> </recurso> </xsl:for-each> </xsl:template> </xsl:stylesheet>