-1

私はそのように定義された親スタイルシートを持っています:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:import href="external/webcommon/WebappTransform.xsl" />
    <xsl:variable name="webAppFinalName">rf</xsl:variable>
</xsl:stylesheet>`

インポートされたスタイルシートWebappTransform.xslには、特定のテンプレート内に含まれるインラインCSSが含まれています。

@import url("/{$webAppFinalName}/external/webcommon/css/print.css");

変換はJavaサーブレットフィルター内で発生し、出力HTMLを正確に表示できませんが、最終結果から、変数が正しく挿入されていないことが明らかです。

変数を手動で挿入して完全なXSLで試してみると、すべて問題ありません。

誰かがここで何が悪いのか説明してもらえますか?多くのオンラインリソースを参照すると、このアプローチが機能するはずです。

心から感謝します。

4

2 に答える 2

2

http://www.w3.org/TR/xslt#importによると、「xsl:import 要素は最上位要素としてのみ許可されています。xsl:import 要素の子は、xsl:stylesheet の他のすべての要素の子より前になければなりません。要素」なので、xsl:variable先行するスニペットxsl:importの順序が間違っている場合、XSLT プロセッサがエラー メッセージを表示することが予想されます。

于 2012-04-16T15:52:58.473 に答える
0

これ:

@import url("/{$webAppFinalName}/external/webcommon/css/print.css");

単なる文字列です。ここでは、変換中に変数の置換は行われません。

代わりにこれを試してください:

<xsl:value-of select="concat('@import url(&quot;/', $webAppFinalName, 
                     '/external/webcommon/css/print.css&quot;);')"/>
于 2012-04-16T16:12:51.223 に答える