1

いくつかの機能を追加するために、既存のプロジェクトを変更しようとしています。いくつかのパラメーターを xsl スタイルシートに渡したいのですが、パラメーターを使用するとエラーが発生します。チュートリアルなどにある最も単純な例を挿入しようとしましたが、役に立ちませんでした。問題は、使用されている xslt のバージョンにあると思いますか?

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" language="VBScript">
  <xsl:param name="test">TEST</xsl:param>

<xsl:template match="/">
  <xsl:value-of select="$test"></xsl:value-of>  
</xsl:template>

</xsl:stylesheet>

例をできるだけ単純にするために、他のすべてのコードを削除しました。私の理解によると、このコードは単純に TEST を html ページに出力する必要があります。ただし、私が得るのは古典的な IIS エラーです。

An error occurred on the server when processing the URL. Please contact the system administrator.

If you are the system administrator please click here to find out more about this error.

なぜこれが起こっているのかについて誰かが洞察を持っていますか? 何らかの方法で変数を使用しようとすると、同じ問題が発生します。Web サーバーの問題ですか、それとも使用している xslt のバージョンの問題ですか?

ご協力ありがとうございました!

4

2 に答える 2

1

ログファイルのどこかに潜んでいるより良いエラーメッセージがないかどうかを確認するために、しばらく時間を費やす価値があるかもしれません. IIS についてはわかりませんが、Microsoft のテクノロジには、大量の診断情報を生成しても、それらがどこにあるのかを知らせないという習慣があるようです。

しかし、language="VBScript"xsl:stylesheet 要素の属性はエラーであり、バージョン 1.0 または 2.0 の適合する XSLT プロセッサは、その理由でこのスタイルシートを拒否する必要があります。

おっと: を使用していることに気付きましたxmlns:xsl="http://www.w3.org/TR/WD-xsl"。これは、XSLT をまったく使用していないことを意味しますが、1998 年に導入され、約 1 年後に廃止された Microsoft 独自の「ワーキング ドラフト XSL」言語です。この言語は、XSLT といくつかの類似点がありますが、今でも機能していると思いますが、最近では古本屋を探し回らない限り、この言語に関するドキュメントを入手することはほとんど不可能です。

于 2012-11-30T09:21:03.380 に答える
0

Michael Kay の回答を拡張すると、Microsoft は古いレガシー「http://www.w3.org/TR/WD-xsl」名前空間のサポートを中止する可能性があるため、これ以上長く動作することを保証することはできません。MSDN で説明されているように、これは確かに IE9 の場合です。

http://msdn.microsoft.com/en-gb/library/ie/hh180178(v=vs.85).aspx

最近、「http://www.w3.org/TR/WD-xsl」を使用していた XSLT スタイルシートを IE9 で動作させるために変更する必要がありました。「http://www.w3.org/1999/XSL/Transform」の正しい名前空間を使用するように変更するだけの単純なケースかもしれませんが、そうでない構造を使用している場合は変更を加える必要があるかもしれません。現在の名前空間で実際にサポートされています。これらは、レガシーではサポートされていたが、現在ではサポートされていないことに気付いたものです

  • xsl:apply-templatesにはorder-by属性がありました。これをxsl:sortに置き換えて ください。
  • xsl:if一致属性が許可されました。これをテストに置き換えます
  • xsl:evalがサポートされました。これは、使用目的によっては、交換するために再加工が必要になる場合があります。
于 2012-11-30T10:04:16.620 に答える