Pregunta

Me gustaría saber qué tipo de motores XSLT funcionan bien con Perl.

Usaré Apache (2.0) y Perl, y quiero obtener archivos PDF y XHTML.

Soy nuevo en este tipo de proyectos, por lo que cualquier comentario o sugerencia será bienvenido.

Gracias.


Haciendo una búsqueda simple en Google encontré mucho y supongo que hay muchas más.

Cualquier comentario sobre tus experiencias será bienvenido.

¿Fue útil?

Solución

Primer error: busque en CPAN , no en Google:)

Esto arroja un montón de resultados, pero resalta más bien el problema de CPAN, que hay más de una solución, y no siempre está claro cuáles funcionan, se han abandonado, están rotos, son lentos o lo que sea.

Y, de manera inquietante, la mejor respuesta (o al menos una de las mejores) aparece en la página cuatro de los resultados :( Como han sugerido otras personas, XML :: LibXSLT es robusto y hace el trabajo:

  use XML::LibXSLT;
  use XML::LibXML;

  my $parser = XML::LibXML->new();
  my $xslt = XML::LibXSLT->new();

  my $source = $parser->parse_file('foo.xml');
  my $style_doc = $parser->parse_file('bar.xsl');

  my $stylesheet = $xslt->parse_stylesheet($style_doc);

  my $results = $stylesheet->transform($source);

  print $stylesheet->output_string($results);

Si desea generar resultados en un archivo, agregue esto

#create output file
open(my $output_xml_file_name, '>', 'test.xml');
print $output_xml_file_name "$results";

Si no quieres hacer nada sofisticado, sin embargo, hay XML: : LibXSLT :: Easy , que básicamente envuelve lo anterior en una llamada de método (y hace un montón de cosas inteligentes detrás de las escenas usando Moose . ¡Compruebe la fuente para una educación!).

  use XML::LibXSLT::Easy;

  my $p = XML::LibXSLT::Easy->new;

  my $output = $p->process( xml => "foo.xml", xsl => "foo.xsl" );

Otros consejos

Hasta ahora estoy muy satisfecho con XML :: LibXML para no -xslt tareas, y su documentación apunta a XML :: LibXSLT , que se ve bastante bueno, pero no tengo experiencia con esto hasta ahora

Realmente no puedo decir cuál es la mejor solución porque no tuve la oportunidad de probarlos todos.
Pero puedo recomendar que pruebe el módulo Perl LibXSLT .
Es una interfaz para la biblioteca libnslt gnome. Lo utilicé en uno de mis proyectos recientes que estaba satisfecho con él.

No dices qué SO, pero para la mayoría de las plataformas * nix, XML :: LibXML será el más fácil de usar e instalar.

Aquí hay algunas bibliotecas de Perl destinadas a reemplazar XSLT:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top