XSL - ¿Como formatear un XSL con 2 XML similares?

 
Vista:

¿Como formatear un XSL con 2 XML similares?

Publicado por GabMx (4 intervenciones) el 02/03/2007 20:04:39
Hola!!

me gustaría saber si pueden ayudarme y mostrarme el como formatear un archivo XSL a partir de 2 archivos XML similares.

Estos son los archivos XML:

1.-

<Resulted>
<title>File1</title>
<subtitle>mayores</subtitle>
<headline>
<item key="Fecha">03012007</item>
</headline>
<table>
<body>
<row>
<column>1</column>
<column>I30024</column>
<column>019558</column>
<column>88518842117208218</column>
<column>010561600</column>
<column>4910893053038054</column>
<column>100009</column>
<column>020420354851</column>
<column>5</column>
</row>
</body>
</table>
</Resulted>

2.-

<Resulted>
<title>File2</title>
<subtitle>menores</subtitle>
<headline>
<item key="Fecha">03012007</item>
</headline>
<table>
<body>
<row>
<column>019558</column>
<column>020420354851</column>
<column>500</column>
<column>I30024</column>
<column>4910893053038054</column>
<column>01012007</column>
<column>122001</column>
<column>000958</column>
<column>R</column>
</row>
</body>
</table>
</Resulted>

De antemano, muchas gracias.
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
Imágen de perfil de Alejandro

Formateo de archivos XML similares

Publicado por Alejandro (227 intervenciones) el 06/07/2023 00:02:48
Para formatear un archivo XSL a partir de dos archivos XML similares, puedes utilizar la funcionalidad de plantillas y selección condicional en XSLT. A continuación, te mostraré un ejemplo de cómo puedes lograrlo:

Considera los siguientes archivos XSLT:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!-- template.xsl -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
  <!-- Plantilla principal -->
  <xsl:template match="/">
    <html>
      <head>
        <title>Resultado</title>
      </head>
      <body>
        <!-- Aplicar plantilla para el archivo 1 -->
        <xsl:apply-templates select="Resulted[title='File1']"/>
 
        <!-- Aplicar plantilla para el archivo 2 -->
        <xsl:apply-templates select="Resulted[title='File2']"/>
      </body>
    </html>
  </xsl:template>
 
  <!-- Plantilla para el archivo 1 -->
  <xsl:template match="Resulted[title='File1']">
    <h1><xsl:value-of select="title"/></h1>
    <h2><xsl:value-of select="subtitle"/></h2>
    <table>
      <thead>
        <tr>
          <th>Column 1</th>
          <th>Column 2</th>
          <!-- Agregar más encabezados de columnas según sea necesario -->
        </tr>
      </thead>
      <tbody>
        <!-- Recorrer las filas -->
        <xsl:for-each select="table/body/row">
          <tr>
            <td><xsl:value-of select="column[1]"/></td>
            <td><xsl:value-of select="column[2]"/></td>
            <!-- Agregar más columnas según sea necesario -->
          </tr>
        </xsl:for-each>
      </tbody>
    </table>
  </xsl:template>
 
  <!-- Plantilla para el archivo 2 -->
  <xsl:template match="Resulted[title='File2']">
    <h1><xsl:value-of select="title"/></h1>
    <h2><xsl:value-of select="subtitle"/></h2>
    <table>
      <thead>
        <tr>
          <th>Column A</th>
          <th>Column B</th>
          <!-- Agregar más encabezados de columnas según sea necesario -->
        </tr>
      </thead>
      <tbody>
        <!-- Recorrer las filas -->
        <xsl:for-each select="table/body/row">
          <tr>
            <td><xsl:value-of select="column[3]"/></td>
            <td><xsl:value-of select="column[4]"/></td>
            <!-- Agregar más columnas según sea necesario -->
          </tr>
        </xsl:for-each>
      </tbody>
    </table>
  </xsl:template>
 
</xsl:stylesheet>

En este ejemplo, el archivo XSLT principal es "template.xsl". Se aplican diferentes plantillas dependiendo del valor del elemento `<title>` en los archivos XML.

En las plantillas específicas para cada archivo, se seleccionan y formatean los datos correspondientes. Puedes agregar o modificar las etiquetas y estilos según tus necesidades.

Al aplicar la transformación XSLT a los archivos XML utilizando este archivo XSLT, obtendrás la salida HTML formateada según las plantillas correspondientes a cada archivo XML.

Recuerda que debes utilizar un procesador XSLT compatible para aplicar la transformación. Puedes utilizar herramientas como XSLTProcessor en JavaScript, Xalan en Java o XSLTproc en línea de comandos, entre otras.

Espero que esta solución te sea útil para formatear tus archivos XML similares. ¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar