Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ordenar XML con XSLT

Estas en el tema de Ordenar XML con XSLT en el foro de Programación General en Foros del Web. Buenas, tengo un XML que es el siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código XML: Ver original <?xml version = "1.0" encoding = "utf-8" ?> <!DOCTYPE recursos SYSTEM ...
  #1 (permalink)  
Antiguo 29/10/2014, 08:07
 
Fecha de Ingreso: octubre-2012
Mensajes: 37
Antigüedad: 12 años, 1 mes
Puntos: 0
Ordenar XML con XSLT

Buenas, tengo un XML que es el siguiente:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE recursos SYSTEM "recursos.dtd">
  3. <recursos>
  4.     <recurso>
  5.         <descripcion>Consorcio W3C</descripcion>
  6.         <tipo>
  7.             <externo url="http://www.w3c.es/"/>
  8.         </tipo>
  9.         <idioma>Inglés</idioma>
  10.         <contenido>
  11.             <General/>
  12.         </contenido>
  13.         <unidad>2</unidad>
  14.     </recurso>
  15.     <recurso>
  16.         <descripcion>Especificación HTML</descripcion>
  17.         <tipo>
  18.             <externo url="http://html.conclase.net/w3c/html401-es/cover.html"/>
  19.         </tipo>
  20.         <idioma>Castellano</idioma>
  21.         <contenido>
  22.             <HTML />
  23.         </contenido>
  24.         <version>4.01</version>
  25.         <unidad>2</unidad>
  26.     </recurso>
  27.     <recurso>
  28.         <descripcion>Enunciado práctica 3</descripcion>
  29.         <tipo>
  30.             <interno fichero="./locales/Practica3_200708.pdf"/>
  31.         </tipo>
  32.         <idioma>Castellano</idioma>
  33.         <contenido>
  34.             <PHP/>
  35.         </contenido>
  36.         <unidad>4</unidad>
  37.     </recurso>
  38.     <recurso>
  39.         <descripcion>W3C DOM</descripcion>
  40.         <tipo>
  41.             <externo url="http://www.w3.org/DOM/"/>
  42.         </tipo>
  43.         <idioma>Inglés</idioma>
  44.         <contenido>
  45.             <DOM />
  46.         </contenido>
  47.         <version>Level 3</version>
  48.         <unidad>3</unidad>
  49.     </recurso>
  50. </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
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <!-- Metodo de salida -->
  4. <xsl:output method="xml" indent="yes"/>
  5.     <xsl:template match="/">
  6.         <xsl:for-each select="recursos/recurso">
  7.             &lt;recurso&gt;
  8.                 &lt;descripcion&gt;<xsl:value-of select="descripcion" />&lt;/descripcion&gt;
  9.                 &lt;tipo&gt;
  10.                     <xsl:choose>
  11.                         <xsl:when test="tipo/externo">
  12.                             &lt;externo url="<xsl:value-of select="tipo/externo/@url" />" /&gt;
  13.                         </xsl:when>
  14.                         <xsl:otherwise>
  15.                             &lt;interno fichero="<xsl:value-of select="tipo/interno/@fichero" />" /&gt;
  16.                         </xsl:otherwise>
  17.                     </xsl:choose>
  18.                 &lt;/tipo&gt;
  19.                 &lt;idioma&gt;<xsl:value-of select="idioma" />&lt;/idioma&gt;
  20.                 &lt;contenido&gt;
  21.                     <xsl:choose>
  22.                         <xsl:when test="contenido/General">
  23.                             &lt;<xsl:value-of select="contenido/."/>/&gt;
  24.                         </xsl:when>
  25.                         <xsl:when test="contenido/HTML">
  26.                             &lt;<xsl:value-of select="contenido/."/>/&gt;
  27.                         </xsl:when>
  28.                         <xsl:when test="contenido/CSS">
  29.                             &lt;<xsl:value-of select="contenido/."/>/&gt;
  30.                         </xsl:when>
  31.                         <xsl:when test="contenido/XML">
  32.                             &lt;<xsl:value-of select="contenido/."/>/&gt;
  33.                         </xsl:when>
  34.                         <xsl:when test="contenido/JavaScript">
  35.                             &lt;<xsl:value-of select="contenido/."/>/&gt;
  36.                         </xsl:when>
  37.                         <xsl:when test="contenido/DOM">
  38.                             &lt;<xsl:value-of select="contenido/."/>/&gt;
  39.                         </xsl:when>
  40.                         <xsl:when test="contenido/PHP">
  41.                             &lt;<xsl:value-of select="contenido/."/>/&gt;
  42.                         </xsl:when>
  43.                     </xsl:choose>
  44.                 &lt;/contenido&gt;
  45.                 <xsl:if test="version">
  46.                     &lt;version&gt;<xsl:value-of select="version" />&lt;/version&gt;
  47.                 </xsl:if>
  48.                 &lt;unidad&gt;<xsl:value-of select="unidad" />&lt;/unidad&gt;
  49.             &lt;/recurso&gt;
  50.         </xsl:for-each>
  51.     </xsl:template>
  52. </xsl:stylesheet>

Etiquetas: xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:32.