2011-01-26 60 views
7

我有一個位於/template.xsl的樣式表和位於/en/index.xml的xml文件,其中「/」(根)實際上是窗體「C:\東西\ otherstuff \」。窗口下的XSLT樣式表相對路徑問題

xml文件包含<?xml-stylesheet type="text/xsl" href="../template.xsl"?>,但未檢測到樣式表。我已經嘗試了無數的變體,使用反斜線或反斜線而不是斜線,使用file:///,絕對路徑,...

什麼是錯?

編輯:對於記錄,它在IE中工作,但不在Firefox中工作。

編輯:這裏的解釋是:http://forums.mozillazine.org/viewtopic.php?f=25&t=670995 這也包括瞭解決方案:

  1. 類型有關:配置在地址欄中
  2. 變化 security.fileuri.strict_origin_policy 假
+1

我不能重現此。任何帶有PI的輸入源都會調用父文件夾中的轉換。請注意,有些情況下您需要特權。 – 2011-01-26 23:30:29

+0

我看到發生這種情況時,生成的絕對路徑包含空格。您使用的是哪種XSL轉換器(即,您希望調用)以及XML解析器應該調用此轉換器的內容?只是MSXML? – 2011-01-26 23:36:24

+0

@Alejandro:我沒有得到你的意思,「在父文件夾中調用轉換」。 @Alain:路徑不包含空格。我只是用Firefox 4打開xml文件,所以無論Firefox使用什麼。如果xml和xslt文件放在同一個文件夾中,一切正常。 – Norswap 2011-01-27 07:18:53

回答

0

有兩件事情可能是我想的問題。
1.你說文件放在同一個文件夾中,href =「../ template.xsl」指向你的XML文件的父文件夾。也許你應該使用href =「template.xsl」。
2. Firefox是一個Beta版本。如果你正在測試的東西,你應該總是使用穩定的版本,否則它可能是Beta軟件導致的錯誤。

-1

如果樣式表被稱爲template.xml,如您所說,那麼對template.xsl的引用將不會找到它。

1

我注意到,如果你把template.xsl放在一個子目錄裏說DISPLAY,href =「DISPLAY/template.xsl」確實有效。 但是,如果你把你的XML放在另一個子目錄中,比如說A,href =「../ DISPLAY/template.xsl」不起作用。

看來「..」有問題。

(即使在2015年,使用Firefox 40.0時候!) 見尼古拉斯Smethurst的附件中: https://bugzilla.mozilla.org/show_bug.cgi?id=439924

- >如上面所說的,開關security.fileuri.strict_origin_policy