2011-01-26 12 views
7

Tengo una hoja de estilo ubicada en /template.xsl y un archivo xml ubicado en /en/index.xml, donde "/" (la raíz) es en realidad de la forma "C: \ cosas \ otherstuff \ ".Problema de ruta relativa de hoja de estilos XSLT bajo Windows

El archivo xml contiene <?xml-stylesheet type="text/xsl" href="../template.xsl"?>, pero no se detecta la hoja de estilo. He intentado innumerables variaciones, usando barras diagonales inversas o pares o barras diagonales inversas en lugar de barras diagonales, usando file: ///, ruta absoluta, ...

¿Qué pasa?

Editar: para el registro, funciona en IE pero no en Firefox.

Editar: y aquí está la explicación: http://forums.mozillazine.org/viewtopic.php?f=25&t=670995 Esto también incluyen la solución:

  1. tipo about: config en la dirección de bar
  2. cambio security.fileuri.strict_origin_policy en false
+1

no puedo reproducir este . Cualquier fuente de entrada con un PI como ese, llamaría una transformación en la carpeta principal. Tenga en cuenta que hay casos en los que necesita privilegios para eso. –

+0

He visto esto suceder cuando la ruta absoluta resultante contiene espacios. ¿Qué transformador XSL está utilizando (es decir, espera invocarlo) y qué analizador XML debe invocar este transformador? ¿Solo MSXML? –

+0

@Alejandro: No entendí lo que quería decir con "llamar a una transformación en la carpeta principal". @Alain: la ruta no contiene espacios. Simplemente abro el archivo xml con Firefox 4, así que es lo que usa Firefox. Todo funciona bien si los archivos xml y xslt se colocan en la misma carpeta. – Norswap

Respuesta

0

Creo que hay dos cosas que pueden ser el problema.
1. Usted dice que los archivos se colocan en la misma carpeta, href = "../ template.xsl" dirige a la carpeta principal de su archivo XML. Tal vez deberías usar href = "template.xsl".
2. Firefox es una versión Beta. Si está probando cosas, siempre debe usar una versión estable porque de lo contrario podría ser el software Beta el que causa los errores.

+0

1. No dije eso, template.xsl está de hecho en la carpeta principal (vuelva a leer mi publicación). 2. Tampoco funciona en Firefox 3. – Norswap

-1

Si la hoja de estilo se llama template.xml, como dices, entonces una referencia a template.xsl no va a encontrarla.

+0

Es en realidad template.xsl, voy a editar el error tipográfico de inmediato. – Norswap

1

Me di cuenta de que si su put template.xsl en un subdirectorio dice DISPLAY, href = "DISPLAY/template.xsl" funciona. Pero si coloca su XML en otro subdirectorio, diga A, href = "../ DISPLAY/template.xsl" no funciona.

Parece que hay un problema con "..".

(Incluso en 2015, cuando se utiliza Firefox 40.0!) Apego Ver Nicolás de Smethrust en: https://bugzilla.mozilla.org/show_bug.cgi?id=439924

-> Como se dijo anteriormente, el interruptor security.fileuri.strict_origin_policy

Cuestiones relacionadas