XSL - Recortar un xml y guardarlo en un recordset

 
Vista:

Recortar un xml y guardarlo en un recordset

Publicado por Sandra (1 intervención) el 11/12/2002 21:12:13
Hola !! Alguien sabe como puedo hacer para recortar un xml ?
Por ejemplo tengo
<Algo>
<Datos>
<Nro>789</Nro>
<Direccion>blabla</Direccion>
</Datos>
<Detalles>
<Referencia>654</Referencia>
<Fecha>20021201</Fecha>
</Detalles>
<Mensaje>hola</Mensaje>
<Mensaje1>chau</MEnsaje>
</Algo>

Quiero recortar la parte de <Detalles></Detalles> nada mas y guardarlo en un recordset

Muchas gracias !!
Sandra

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

Recortar sección "Detalles" y guardar en recordset

Publicado por Alejandro (227 intervenciones) el 04/07/2023 23:20:21
Aquí tienes una solución utilizando XSLT para recortar la sección "Detalles" del XML y guardarla en un recordset. Puedes usar esta solución como base para futuras consultas similares:

1. Crear un archivo XSLT llamado "recortar-detalles.xsl" con el siguiente contenido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
 
  <!-- Template principal -->
  <xsl:template match="/">
    <!-- Crear el recordset -->
    <recordset>
      <!-- Aplicar el template a la sección "Detalles" -->
      <xsl:apply-templates select="Algo/Detalles"/>
    </recordset>
  </xsl:template>
 
  <!-- Template para la sección "Detalles" -->
  <xsl:template match="Detalles">
    <!-- Copiar el contenido de "Detalles" -->
    <xsl:copy-of select="."/>
  </xsl:template>
</xsl:stylesheet>

2. Utilizar un lenguaje de programación o una herramienta que admita transformaciones XSLT para aplicar el archivo XSLT al XML de entrada. Aquí hay un ejemplo en Python utilizando la biblioteca lxml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from lxml import etree
 
# Cargar el archivo XML
xml_file = "ruta/del/archivo.xml"
tree = etree.parse(xml_file)
 
# Cargar el archivo XSLT
xslt_file = "ruta/del/archivo.xsl"
xslt = etree.parse(xslt_file)
 
# Crear el transformador XSLT
transformer = etree.XSLT(xslt)
 
# Aplicar la transformación al XML
result = transformer(tree)
 
# Obtener el resultado como cadena de texto
recordset = str(result)
 
# Imprimir el recordset resultante
print(recordset)

Ten en cuenta que debes reemplazar "ruta/del/archivo.xml" y "ruta/del/archivo.xsl" con las rutas correctas hacia tus archivos XML y XSLT respectivamente.

Después de ejecutar este código, obtendrás el contenido de la sección "Detalles" del XML original guardado en la variable `recordset`. Puedes adaptar este código a tu lenguaje de programación preferido si no estás utilizando Python.

Espero que esta solución te sea útil.
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