2011-01-26 17 views
7

/template.xslにスタイルシートがあり、/en/index.xmlにxmlファイルがあります。 "/"(ルート)は実際には "C:\"という形式です。 stuff \ otherstuff \ "となります。XSLTスタイルシートの相対パス問題

xmlファイルには<?xml-stylesheet type="text/xsl" href="../template.xsl"?>が含まれていますが、スタイルシートは検出されません。私は、ファイル:///、絶対パス、スラッシュの代わりにバックスラッシュまたはペアまたはバックスラッシュを使用して、無数のバリエーションを試しました...

何が問題なのですか?

編集:記録ではIEでは動作しますが、Firefoxでは動作しません。

編集:とここでの説明です:

  1. 型について:アドレスバーに 設定
  2. に変更 security.fileuri.strict_origin_policy を http://forums.mozillazine.org/viewtopic.php?f=25&t=670995 これはまた、溶液、
+1

、上記の言ったように。そのようなPIを持つ入力ソースは、親フォルダ内の変換を呼び出します。そのために特権が必要な場合があることに注意してください。 –

+0

結果の絶対パスにスペースが含まれている場合、これが起こっていることがわかりました。どのXSLトランスフォーマーを使用していますか(つまり、呼び出されることを期待していますか?)、XMLパーサーはこのトランスフォーマーを呼び出す必要がありますか?ちょうどMSXML? –

+0

@Alejandro:「親フォルダで変換を呼び出す」という意味を理解できませんでした。 @Alain:パスに空白が含まれていません。私はFirefox 4でxmlファイルを開くだけなので、Firefoxが使用するものであれば何でも可能です。 xmlとxsltファイルが同じフォルダに置かれていると、すべてうまく動作します。 – Norswap

答えて

0

私は考えている問題が2つあります。
1.ファイルが同じフォルダに置かれているとします。href = "../ template.xsl"は、XMLファイルの親フォルダに移動します。 href = "template.xsl"を使うべきでしょう。
2. Firefoxはベータ版です。あなたがテストしているのであれば、常に安定したバージョンを使用してください。さもなければ、それはバグを引き起こすベータソフトウェアかもしれないからです。

+0

1.私は、template.xslが実際には親フォルダにあるとは言っていませんでした(私の投稿を再読してください)。 2. Firefox 3では動作しません。 – Norswap

-1

あなたが言うように、スタイルシートがtemplate.xmlと呼ばれている場合、template.xslへの参照はそれを見つけることができません。

+0

実際にはtemplate.xslですが、すぐに入力ミスを編集します。 – Norswap

1

私はサブテンプレートのput template.xslがDISPLAYと言うと、href = "DISPLAY/template.xsl"が機能することに気付きました。 しかし、あなたのXMLを別のサブディレクトリ、たとえばAに置くと、href = "../ DISPLAY/template.xsl"は機能しません。

「..」に問題があるようです。

(でもFirefoxの40.0を使用して2015年、で!)で 参照ニコラスSmethurstの添付ファイル: https://bugzilla.mozilla.org/show_bug.cgi?id=439924

- >スイッチsecurity.fileuri.strict_origin_policyは、私はこれを再現することはできません