0

xslt ファイルの javascript ブロックで xsl 変数を使用しようとしていますが、どうしようもありません。

XSLT は次のとおりです (公開用に編集されています)。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:output method="html" indent="yes"/>
    <xsl:template match="a">
         <xsl:variable name="myVar" select="xpath to the node"/>

    <script type='text/javascript'>

            googletag.cmd.push(function() {
        ...
      googletag.pubads().setTargeting('label', '<xsl:value-of select="$myVar"/>');
            googletag.enableServices();
            });

  </script> 

    </xsl:template>
</xsl:stylesheet>

Oxygen で XML を変換すると、このコードは正常に動作します。しかし、を使用するサーブレットで実行すると 、次のjavax.xml.transform.Transformer.transform(Source xmlSource, Result outputTarget) throws TransformerExceptionようになります。 googletag.pubads().setTargeting('label', ' ');

Oxygenと私のサーブレットの間のこの不一致の考えられる理由を誰かが提案できますか?

4

1 に答える 1

1

変数の内容として代わりにこれを試してください:

<xsl:variable name="myVar" select="'xpath to the node'"/>

これにより、コンテンツがリテラル文字列として表示されます。おそらく、Oxygen はそれを無視するのに十分寛容であり、あなたの Java は (正しく) そうではありません。これはエラーです

外側の二重引用符は、式の形成には関与せず、内部にあるものだけを使用します。そうすれば、文字列 '1+2'または変数の合計 を表現でき1+2ます。

于 2013-08-14T19:42:36.437 に答える