XSL - Crear XML ordenado con XSLT y XML

   
Vista:

Crear XML ordenado con XSLT y XML

Publicado por JoseRamon91 (1 intervención) el 02/11/2014 21:34:58
Buenas, tengo un XML que es el siguiente:

<?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?

<?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">
&lt;recurso&gt;
&lt;descripcion&gt;<xsl:value-of select="descripcion" />&lt;/descripcion&gt;
&lt;tipo&gt;
<xsl:choose>
<xsl:when test="tipo/externo">
&lt;externo url="<xsl:value-of select="tipo/externo/@url" />" /&gt;
</xsl:when>
<xsl:otherwise>
&lt;interno fichero="<xsl:value-of select="tipo/interno/@fichero" />" /&gt;
</xsl:otherwise>
</xsl:choose>
&lt;/tipo&gt;
&lt;idioma&gt;<xsl:value-of select="idioma" />&lt;/idioma&gt;
&lt;contenido&gt;
<xsl:choose>
<xsl:when test="contenido/General">
&lt;<xsl:value-of select="contenido/."/>/&gt;
</xsl:when>
<xsl:when test="contenido/HTML">
&lt;<xsl:value-of select="contenido/."/>/&gt;
</xsl:when>
<xsl:when test="contenido/CSS">
&lt;<xsl:value-of select="contenido/."/>/&gt;
</xsl:when>
<xsl:when test="contenido/XML">
&lt;<xsl:value-of select="contenido/."/>/&gt;
</xsl:when>
<xsl:when test="contenido/JavaScript">
&lt;<xsl:value-of select="contenido/."/>/&gt;
</xsl:when>
<xsl:when test="contenido/DOM">
&lt;<xsl:value-of select="contenido/."/>/&gt;
</xsl:when>
<xsl:when test="contenido/PHP">
&lt;<xsl:value-of select="contenido/."/>/&gt;
</xsl:when>
</xsl:choose>
&lt;/contenido&gt;
<xsl:if test="version">
&lt;version&gt;<xsl:value-of select="version" />&lt;/version&gt;
</xsl:if>
&lt;unidad&gt;<xsl:value-of select="unidad" />&lt;/unidad&gt;
&lt;/recurso&gt;
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder