XSL - Transformar un XSL a otro XSL

 
Vista:

Transformar un XSL a otro XSL

Publicado por Guillermo (1 intervención) el 10/06/2004 15:30:18
Hola a todos.
Necesito transformar un xsl a otro xsl limpiando algunas cosas y dejando otras tal cual estan. El problema es que en el xsl original tengo un namespace que no es siempre el mismo, y necesito que aparezca en el resultado (otro xsl). Ya se que no se puede hacer pidiendo los atributos del stylesheet de origen porque no aparece como un atributo.

Espero que me puedan ayudar en este problema específico, y si alguien ya ha hecho algo parecido (xsl a xsl) agradeceria cualquier tipo de sugerencia acerca de como plantear la solucion. ¿Cual es la mejor manera de hacerlo?

Desde ya, muchas gracias.

Guillermo.
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

Transformar un XSL a otro XSL conservando un namespace variable

Publicado por Alejandro (227 intervenciones) el 05/07/2023 00:03:49
Para transformar un XSL a otro XSL conservando un namespace variable, puedes utilizar las capacidades de procesamiento de XML y XSLT para manipular y generar el nuevo XSL. Aquí hay una posible solución para abordar este problema:

1. Lee el XSL original: Utiliza una biblioteca o API de procesamiento de XML en tu lenguaje de programación preferido para cargar y analizar el XSL original.

2. Identifica y limpia el namespace: Utiliza métodos o funciones para buscar y eliminar el namespace no deseado del XSL original. Puedes utilizar expresiones regulares, manipulación de cadenas u otras técnicas dependiendo del lenguaje de programación que estés utilizando.

3. Genera el nuevo XSL: Utilizando la misma biblioteca o API de procesamiento de XML, crea un nuevo documento XSL con la estructura y contenido deseado. Asegúrate de incluir el namespace variable que necesitas conservar.

4. Guarda el nuevo XSL: Guarda el nuevo documento XSL en un archivo o en una ubicación adecuada para su uso posterior.

Aquí tienes un ejemplo en Java utilizando la biblioteca de procesamiento de XML y XSLT, javax.xml.transform:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
 
public class XSLTransformation {
    public static void main(String[] args) {
        try {
            // Cargar el XSL original
            Source xslSource = new StreamSource("original.xsl");
 
            // Crear un transformador
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer(xslSource);
 
            // Transformar y generar el nuevo XSL
            Source emptySource = new StreamSource("<empty.xml>");
            Result newXslResult = new StreamResult("nuevo.xsl");
            transformer.transform(emptySource, newXslResult);
 
            System.out.println("El nuevo XSL se ha generado exitosamente.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Recuerda ajustar los nombres de los archivos "original.xsl" y "nuevo.xsl" según corresponda.

Esta solución utiliza la biblioteca javax.xml.transform para cargar, transformar y generar el nuevo XSL. Puedes adaptar este ejemplo a tu lenguaje de programación preferido y utilizar las bibliotecas correspondientes para el procesamiento de XML y XSLT.

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