2011-01-26 14 views
7

Ho un foglio di stile situato in /template.xsl e un file xml situato in /en/index.xml, dove "/" (la radice) è in realtà nella forma "C: \ roba \ otherstuff \".Problema relativo al percorso del foglio di stile XSLT sotto Windows

Il file xml contiene <?xml-stylesheet type="text/xsl" href="../template.xsl"?>, ma il foglio di stile non viene rilevato. Ho provato innumerevoli variazioni, utilizzando barre rovesciate o coppia o barre rovesciate invece di barre, utilizzando file: ///, percorso assoluto, ...

Cosa c'è che non va?

Modifica: per la cronologia, funziona in IE ma non in Firefox.

Modifica: ed ecco la spiegazione: http://forums.mozillazine.org/viewtopic.php?f=25&t=670995 Questo include anche la soluzione:

  1. Tipo di about: config nella barra di indirizzo
  2. cambiamento security.fileuri.strict_origin_policy false
+1

non riesco a riprodurre questo . Qualsiasi sorgente di input con un PI simile, chiamerebbe una trasformazione nella cartella principale. Si noti che ci sono casi in cui è necessario il privilegio per questo. –

+0

Ho visto accadere questo quando il percorso assoluto risultante contiene spazi. Che tipo di trasformatore XSL stai usando (cioè ti aspetti di essere invocato) e quale parser XML dovrebbe richiamare questo trasformatore? Solo MSXML? –

+0

@ Alejandro: Non ho capito cosa intendevi con "chiamare una trasformazione nella cartella principale". @Alain: il percorso non contiene spazi. Sto semplicemente aprendo il file xml con Firefox 4, quindi è quello che usa Firefox. Tutto funziona correttamente se i file xml e xslt sono posizionati nella stessa cartella. – Norswap

risposta

0

Ci sono due cose che potrebbero essere il problema che penso.
1. I file vengono inseriti nella stessa cartella, href = "../ template.xsl" indirizza alla cartella principale del file XML. Forse dovresti usare href = "template.xsl".
2. Firefox è una versione Beta. Se stai verificando le cose dovresti sempre usare una versione stabile perché altrimenti potrebbe essere il software Beta a causare i bug.

+0

1. Non l'ho detto, template.xsl è di fatto nella cartella genitore (per favore rileggi il mio post). 2. Anche in Firefox 3 non funziona. – Norswap

-1

Se il foglio di stile è chiamato template.xml, come dici tu, un riferimento a template.xsl non lo troverà.

+0

In realtà template.xsl, modificherò subito l'errore di battitura. – Norswap

1

Ho notato che se metti template.xsl in una sottodirectory dice DISPLAY, href = "DISPLAY/template.xsl" funziona. Ma se inserisci il tuo XML in un'altra sottodirectory, ad esempio A, href = "../ DISPLAY/template.xsl" non funziona.

Sembra che ci sia un problema con "..".

(Anche nel 2015, quando si utilizza Firefox 40.0!) L'attaccamento di See Nicholas Smethurst in: https://bugzilla.mozilla.org/show_bug.cgi?id=439924

-> Come detto sopra, l'interruttore security.fileuri.strict_origin_policy

Problemi correlati