es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener el XML transformado de Saxon 10.6 como una cadena

Estoy usando el siguiente código para transformar el XML basado en XSLT usando Saxon 10.6. Pude obtener el XML transformado en un archivo. Pero necesito asignar el XML transformado a una cadena. Por favor, ayuda para lograr esto.

Source xslt = new StreamSource(new StringReader(inputXSLT));
Source xml = new StreamSource(new StringReader(inputXML));
Processor processor = new Processor(false);
XsltCompiler compiler = processor.newXsltCompiler();
XsltExecutable stylesheet = compiler.compile(xslt);
Serializer out = processor.newSerializer(new File("C:/Users/Abc/books.xml"));
out.setOutputProperty(Serializer.Property.METHOD, "xml");
out.setOutputProperty(Serializer.Property.INDENT, "yes");
Xslt30Transformer transformer = stylesheet.load30();
transformer.transform(xml,out);
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para asignar el XML transformado a una cadena en lugar de a un archivo, puedes usar un StringWriter en lugar de un Serializer:

    Source xslt = new StreamSource(new StringReader(inputXSLT));
    Source xml = new StreamSource(new StringReader(inputXML));
    Processor processor = new Processor(false);
    XsltCompiler compiler = processor.newXsltCompiler();
    XsltExecutable stylesheet = compiler.compile(xslt);
    StringWriter writer = new StringWriter();
    Serializer out = processor.newSerializer(writer);
    out.setOutputProperty(Serializer.Property.METHOD, "xml");
    out.setOutputProperty(Serializer.Property.INDENT, "yes");
    Xslt30Transformer transformer = stylesheet.load30();
    transformer.transform(xml, out);
    String transformedXML = writer.toString();
    

    Este código crea un objeto StringWriter que actúa como destino de salida para el XML transformado. Luego se crea un Serializer con el StringWriter como destino de salida. Después de transformar el XML con el Xslt30Transformer, el contenido del StringWriter se puede obtener como una cadena con el método toString(), y se asigna a la variable transformedXML.

Comments are closed.