XSL - XSL

 
Vista:

XSL

Publicado por lissette (1 intervención) el 18/06/2007 15:05:39
Hola!!
Puede un xsl utilizar 2 XML(iguales pero con datos distintos) y producir otro XML?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

Combinación de dos XML en un archivo de salida

Publicado por Alejandro (227 intervenciones) el 06/07/2023 16:28:36
Sí, Lissette, es posible que un XSLT utilice dos XML diferentes y produzca un tercer XML como resultado. XSLT (Extensible Stylesheet Language Transformations) es un lenguaje de transformación diseñado específicamente para manipular y transformar documentos XML.

Puedes utilizar la función `document()` en XSLT para cargar y acceder a múltiples archivos XML en una hoja de estilo XSLT. La función `document()` permite cargar un documento XML externo y utilizarlo como fuente de datos en tus transformaciones XSLT.

A continuación, te muestro un ejemplo básico de cómo puedes utilizar dos XML de entrada en una hoja de estilo XSLT y generar un tercer XML como resultado:

Supongamos que tienes dos archivos XML llamados "input1.xml" y "input2.xml", con la misma estructura pero diferentes datos. Y deseas combinar esos datos en un solo archivo XML de salida.

input1.xml:
1
2
3
4
5
<root>
  <item>
    <name>Item 1</name>
  </item>
</root>

input2.xml:
1
2
3
4
5
<root>
  <item>
    <name>Item 2</name>
  </item>
</root>

El siguiente XSLT cargará ambos archivos XML y generará un tercer archivo XML llamado "output.xml" que contiene los elementos combinados de los archivos de entrada:

transformation.xslt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" />
 
  <!-- Cargar los archivos de entrada -->
  <xsl:variable name="input1" select="document('input1.xml')" />
  <xsl:variable name="input2" select="document('input2.xml')" />
 
  <xsl:template match="/">
    <root>
      <!-- Combinar los elementos de los archivos de entrada -->
      <xsl:for-each select="$input1/root/item | $input2/root/item">
        <item>
          <xsl:copy-of select="*" />
        </item>
      </xsl:for-each>
    </root>
  </xsl:template>
 
</xsl:stylesheet>

Al ejecutar este XSLT con un procesador XSLT, generará un archivo XML llamado "output.xml" con el siguiente contenido:

output.xml:
1
2
3
4
5
6
7
8
<root>
  <item>
    <name>Item 1</name>
  </item>
  <item>
    <name>Item 2</name>
  </item>
</root>

Como puedes ver, el archivo de salida "output.xml" contiene los elementos combinados de los archivos "input1.xml" e "input2.xml".

Espero que esto te ayude a comprender cómo puedes utilizar múltiples archivos XML en una hoja de estilo XSLT y generar un tercer XML como resultado. Recuerda ajustar los nombres de los archivos y las rutas según tus necesidades.
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