2017-06-06 8 views
0

私はこれを持っている(2.0は、出力方法はhtmlです):出力phpの処理命令は、私のXSLTで

<img> 
    <xsl:attribute name="href"> 
     <xsl:text disable-output-escaping="yes">&lt;?php echo get_url(); ?&gt;</xsl:text> 
    </xsl:attribute> 
</img> 

次のように私が欲しいの出力は次のようになります。

<img href="<?php echo get_url(); ?>"> 

出力私が得る次のとおりです。

<img href="<?php echo get_url(); ?&gt;"> 

は「>」が出力insteaに出てくる取得するさまざまなものの束を試してみましたdが& gt; (CDATAマークされたセクションなど)しかし、何も動作していないようです。不思議なことに、より小さい記号はうまく働くが、それよりも大きくはない。私はSaxon-PE 9.5.1.7を使用しています。

<img href="«?php echo get_url(); ?»"/> 

<xsl:output method="html" use-character-maps="m1"/> 

<xsl:character-map name="m1"> 
    <xsl:output-character character="«" string="&lt;"/> 
    <xsl:output-character character="»" string="&gt;"/> 
</xsl:character-map> 

オンライン例は次のとおりです。

答えて

0

ここXSLT 2.0仕様から適応例(https://www.w3.org/TR/xslt20/#character-maps)は、あなたが他の場所で必要のないいくつかの文字と文字のマップを使用しますhttp://xsltransform.net/93dEHFP

disable-output-escapingに関しては、私が知る限り属性値では機能しません。その結果は、disable-output-escapingの結果ではなく、xsl:output method="html"https://www.w3.org/TR/xslt-xquery-serialization/#HTML_ATTRIBS) 'HTML出力メソッドは、属性値に "<"文字をエスケープしてはならない(MUST NOT)。

+0

驚くばかりの仲間 - 本当に助けに感謝します。 K –

+0

そしてそれは同様に動作します!あなたはスターサー、ブラボーです! –

関連する問題