XSLとregisterPHPfunctionsで PHP を使用しています。
を使用して PHP 文字列値を返すことはxsl:value-of
問題ありませんが、PHP から XML フラグメントを返す方法がわかりません。
XSLT での例:
<xsl:template match="table">
<xsl:copy-of select="php:function('myfunc',.)"/>
</xsl:template>
PHP での例:
function myfunc($x) {return '<table><tr><td>ok</td></tr></table>';}
結果は XML ではなく、「lt/gt/amp でエンコードされた XML」です。XSLの使用copy-of
またはvalue-of
XSL での使用。戻り動作を変更しないでください。キャストの問題ですか?
PS: ID 関数を使用しても、テストしたところ、XML ノードは返されません。
function myfunc($x) {return $x;}