2008-10-20 40 views
27

Tengo un servlet Java que genera xml, lo traduce con una hoja de estilo xslt y luego muestra el HTML resultante. Esta es la primera vez que trabajo con xslt. ¿Cuál es una buena manera de depurar xslt? Tengo (o puedo obtener) algunos archivos XML de muestra para aplicar la transformación también. Pero realmente no estoy seguro de la sintaxis, así que algo que me daría advertencias de sintaxis sería genial.Herramientas para la depuración xslt

Respuesta

8

Xalan debería darle errores útiles cuando intente utilizar un XSLT no válido. Si desea algo más poderoso, una opción para depurar XSLT es Oxygen XML Editor. Está integrado con los motores de transformación Xalan y Saxon. Su modo de depuración le permite establecer puntos de interrupción, observar variables y proporciona otras funciones básicas de depuración. Puede ser excesivo para ti, pero es muy bueno.

2

la hora de aprender, un editor de resaltado de sintaxis es generalmente suficiente para mí (por supuesto con el doc ref abierta en otra ventana.

Kate es un gran editor de XML y XSLT.

+0

Un resaltador de sintaxis es útil. Estoy usando VI en mi servidor en este momento porque no terminé de configurar mi entorno de desarrollo. Pero lo que realmente quiero es poder ejecutar xml y xslt a través de un procesador y obtener mensajes de error o lo que sea sin tener que ejecutar todo el proceso de servlet. –

+0

prueba un procesador xslt de línea de comandos; Yo uso xalan, pero cualquiera lo haría. Estoy seguro de que vi puede ejecutarlo y no se sorprenderá si pudiera incluso analizar las salidas de error como lo hace con los compiladores – Javier

+0

Oh, definitivamente quiere ejecutar sus transformaciones y ver su salida en su IDE. No creo que un depurador sea muy importante, pero eso es esencial. –

7

una vez tuve que escribir y depurar algunos documentos XSLT complejos. En ese momento usé "printf-style" depurado al generar muchos valores intermedios. Más tarde descubrí que hay una manera mucho más fácil de hacerlo: Altova XMLSpy. Te permite soltar -pasar a través del proceso de aplicación de estilo, ver salida intermedia, etc. etc.

VS8 también tiene depuración XSLT apoyo de ing. Vea aquí: http://msdn.microsoft.com/en-us/library/ms255605(VS.80).aspx

También debo mencionar que tanto XMLSpy como VS8 tienen resaltado de sintaxis también. Si especifica un XSD en su XML, ¡VS8 incluso le da inteligencia!

+0

Lamentablemente, no puedo justificar el costo para mi jefe por el uso limitado que obtendría, por ahora. Si esto se convierte en un proyecto a más largo plazo, puedo obtener uno o el otro. –

+0

Simplemente descargue la edición Express de Visual Studio. Es gratis. –

+0

Una gran publicación sobre soporte de depuración XSLT de Visual Studio aquí: http://www.codeproject.com/Articles/41992/Debugging-XML-Transforms-XSLT-with-Visual-Studio – Merenzo

3

Trabajo con XSLT casi todos los días y lo tengo durante seis o siete años.

Descubrí que la depuración de XSLT al estilo "printf" es tan efectiva que nunca obtuve un beneficio al usar cualquier otro mecanismo de depuración (y he intentado con XMLSpy y Visual Studio). A veces sucede que quiero ser capaz de inspeccionar el valor de una variable y construir una lógica que lo genere es una molestia. Pero eso es bastante raro.

Puede ser que tener un depurador habría hecho aprendiendo XSLT más fácil. (. Cualquier cosa tendría)

2

Xselerator es S gran herramienta de depuración XSL que:

  • Deje que el paso por su dom XSLT
  • Crear declaraciones reloj
  • evaluar los estados XPath contra ti XML DOM
  • IDE con Intellisense

he utilizado esto durante años y es una gran herramienta.

8

Si desea realizar la depuración "printf-style" y no desea ensuciar la salida con datos de depuración, use la etiqueta <xsl:message> para generar resultados de depuración mientras procesa la hoja de estilos. Con el atributo terminate="yes", incluso puede detener el procesamiento de la hoja de estilo.

+2

A) El uso de la línea de comando 'xmllint mytransform.xsl' como un corrector de sintaxis básico es útil para detectar llaves desajustadas, etc. B) También puede ser realmente útil ejecutar un procesador de línea de comandos en modo detallado. cuando no sabes por qué xslt se está ahogando en tu código. 'xsltproc -v mytransform.xsl input.xml &> log.txt' descarga MUCHA información del xsltprocessor. Filtre el ruido mediante la búsqueda con vim o grep para sus mensajes de depuración, como "DEBUG: inicio de mi código" o patrones de cadena útiles como "aplicación de plantilla". – GuruM

2

PHPStorm y el otro IntelliJ IDEs (comercial) soporte debugging XSLT. Puede recorrer el documento y ver el resultado que se genera paso a paso.

0

Microsoft Visual Studio es también una gran herramienta para el depurador xslt. Pero debe instalar el

+0

Instalar el componente de estudio visual, componente de desarrollo de oficina – Pratzz

+0

Puede editar la respuesta. Aunque no veo que esto agregue nada a esta pregunta de hace diez años, eso aún no se ha mencionado. – MrT

Cuestiones relacionadas