firefox - teclado - mozilla inspector
Firefox 3 no aplica mi hoja de estilo xslt, pero otros navegadores sà (5)
intente servirlo como application / xml en lugar de text / xml
Estoy intentando servir páginas xml generadas dinámicamente desde un servidor web, y proporcionar un xslt personalizado y estático desde el mismo servidor web, que descargará el procesamiento en el navegador web del cliente.
Hasta hace poco, funcionaba bien en Firefox 2, 3, IE5, 6 y Chrome. Recientemente, sin embargo, algo ha cambiado, y Firefox 3 ahora solo muestra los elementos de texto en la fuente.
La fuente de la página comienza así:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Firefox 2.0 and Internet Explorer 7 use simplistic feed sniffing to override desired presentation behavior for this feed, and thus we are obliged to insert this comment, a bit of a waste of bandwidth, unfortunately. This should ensure that the following stylesheet processing instruction is honored by these new browser versions. For some more background you might want to visit the following bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=338621 -->
<?xml-stylesheet type="text/xsl" href="/WebObjects/SantaPreview.woa/Contents/WebServerResources/Root.xsl"?>
<wrapper xmlns="http://www.bbc.co.uk/ContentInterface/Content" xmlns:cont="http://www.bbc.co.uk/ContentInterface/Content" sceneId="T2a_INDEX" serviceName="DSat_T2">
....
Firebug muestra que el archivo Root.xsl se está cargando, y los encabezados de respuesta para él incluyen la línea
Content-Type text/xml
También lo probé con application / xml como tipo de contenido, pero no hace diferencia :-(
La Extensión de desarrollador web también muestra la fuente correcta generada, y si la guarda y carga la página en Firefox, se muestra correctamente.
La versión de Firefox que muestra el problema es 3.0.3
¿Alguna idea de lo que podría estar haciendo mal?
Solo escribo aquí para la posteridad: tuve el mismo síntoma, también Firefox 3. Sin embargo, en mi caso, el problema fue otro:
Parece que Firefox realmente no le gusta cuando un archivo XSL tiene un guion bajo _
en el nombre. Mi archivo XSLT se llamaba algo así como my_super_nice_xslt_which_loads_in_opera_and_ie.xsl
.
Entonces, gente, no usemos guiones bajos. Use un guión (menos) en su lugar: my-super-nice-xslt-which-loads-in-opera-and-ie.xsl
.
Luego se cargará en Firefox también. Creo que usaré nombres simples muertos con letras y números a partir de ahora. Ya sabes el dicho, "una vez mordido, dos veces tímido". (En mi caso, fui mordido dos veces, pero lo olvidé la primera vez, por lo que me da cuatro vueltas de timidez esta vez).
Respondiendo a mi propia pregunta a la luz de la investigación posterior. ddaa llévame en la dirección correcta.
Firefox parece ser bastante quisquilloso con las conversiones xslt. Vuelva a verificar su xslt para asegurarse de que no tiene errores que IE y Chrome están enmascarando.
XML Spy es un producto bueno, aunque no barato, que destacará un rango de errores en el xslt. Parece recoger al menos tantos problemas como lo hace el procesador de Firefox.
Parece que no puede confiar en la extensión de desarrollador web para resolver el problema, desafortunadamente.
Si está utilizando NoScript, también deshabilita las hojas de estilo XSL hasta que Allow <site>
.
Mostrar solo los elementos de texto es el comportamiento que obtendría de una hoja de estilos XSL vacía.
Para mí, eso sugiere que algo sospechoso está ocurriendo con tus expresiones xpath, y que los atributos xsl: template / @ match no coinciden con el documento fuente.
No proporciona suficiente información para diagnosticar más, por lo que esta conjetura ciega es todo lo que puedo ofrecer.
EDITAR: Resultó que el problema era que IE y Chrome aceptaban silenciosamente un conjunto de nodos como argumento para string-length , mientras que FF3 no lo hacía. Tenga en cuenta que la especificación exige un argumento de cadena opcional y no especifica el comportamiento con un argumento nodeset.