10

Webサーバーから動的に生成されたxmlページを提供し、同じWebサーバーからカスタムの静的なxsltを提供しようとしています。これにより、処理がクライアントのWebブラウザーにオフロードされます。

最近まで、Firefox 2、3、IE5、6、およびChromeでこれは正常に機能していました。しかし最近、何かが変更され、Firefox3はソース内のテキスト要素のみを表示するようになりました。

ページソースは次のように始まります。

<?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は、Root.xslファイルがロードされていることを示しており、その応答ヘッダーには次の行が含まれています

Content-Type    text/xml

また、コンテンツタイプとしてapplication / xmlを使用して試しましたが、違いはありません:-(

Web Developer Extensionは、生成された正しいソースも表示します。これを保存してFirefoxにページをロードすると、正しく表示されます。

問題を表示しているFirefoxのバージョンは3.0.3です

私が間違っているかもしれないアイデアはありますか?

4

5 に答える 5

6

テキスト要素だけを表示することは、空の XSL スタイルシートから得られる動作です。

私には、xpath 式で怪しいことが起こっており、xsl:template/@match 属性がソース ドキュメントと一致していないことがわかります。

さらに診断するのに十分な情報が提供されていないため、この盲目的な推測が私が提供できるすべてです.

編集: 問題は、IE と Chrome が nodeset をstring-length の引数として黙って受け入れるのに対し、FF3 は受け入れないことであることが判明しました。仕様では、オプションの文字列引数が義務付けられており、nodeset 引数での動作は指定されていないことに注意してください。

于 2008-10-23T21:03:28.443 に答える
4

NoScript を使用している場合は、XSL スタイルシートも無効になりますAllow <site>

于 2013-04-24T12:02:02.037 に答える
3

その後の調査に照らして、私自身の質問に答えます。ddaaは私を正しい方向に導きます。

Firefoxはxslt変換でかなりうるさいようです。xsltを再確認して、IEとChromeがマスキングしているというエラーがないことを確認します。

XML Spyは、安価ではありませんが、xsltのさまざまなエラーを強調する優れた製品です。少なくともFirefoxレンダラーと同じくらい多くの問題を取り上げているようです。

残念ながら、問題を解決するためにWebDeveloper拡張機能に頼ることはできないようです。

于 2008-10-24T08:48:21.890 に答える
3

後世のためにここに書いています-Firefox3でも同じ症状がありました。しかし、私の場合、問題は別のものでした。

Firefoxは、XSLファイルの名前にアンダースコアが含まれていると、本当に嫌いなようです。_私のXSLTファイルはのようなものと呼ばれていmy_super_nice_xslt_which_loads_in_opera_and_ie.xslました。

だから、人々は、アンダースコアを使用しないようにしましょう。代わりにハイフン(マイナス)を使用してください: my-super-nice-xslt-which-loads-in-opera-and-ie.xsl

その後、Firefoxにも読み込まれます。これからは、文字と数字が入った単純な名前を使うだけだと思います。あなたは「一度噛まれたら、二度恥ずかしがり屋」ということわざを知っています。(私の場合、2回噛まれましたが、1回目は忘れてしまったので、今回は4回恥ずかしがり屋になります。)

于 2010-10-13T15:48:03.433 に答える
0

text/xml ではなく application/xml として提供してみてください

于 2008-10-21T23:59:14.610 に答える