2011-10-18 7 views
1

XSLTテンプレート内の通常のPHPコードは可能ですか?

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

<xsl:output method="html" encoding="UTF-8" indent="yes"/> 

<xsl:template match="BackgroundReportPackage"> 

<!--- here i would like to add code like ----> 

if ($dateofcharge < 7) { 
return ' 

<xsl:for-each select="Charge"> 
      <table class="special2" cellpadding="0"> 
       <tr class="tr-border-bottom"> 
        <td class="front-td-text" valign="top">Charge ID: </td> 
        <td class="minimalec"> 
        <xsl:value-of select="ChargeId"/>   
        </td> 
       </tr> 

       <tr class="tr-border-bottom"> 
        <td class="front-td-text" valign="top">Charge Type Classification: </td> 
        <td class="minimalec"> 
        <xsl:value-of select="ChargeTypeClassification"/> 
        </td> 
       </tr>     

      </table> 

';   
} else { 
do nothing 
} 

<!--- keep in mind that this code i've added is just for presentational purposes TO show you, how i want to use php code ---> 

</xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 
...私ができるなら、私は不思議とどのように私は私のXSLTテンプレート内のコードを含めることができます...私は <xsl:choose>を使用することができます知っているが、それは私のニーズを満たしていない、私は関数、変数などを追加したいです

誰でも助けることができますように!

+0

あなたは確かに出力としてxsltを生成するPHPスクリプトを持つことができます。しかし、私はテンプレートの部分を評価するためにPHPでxsltテンプレート呼び出しをすることはできないと思います。 –

+0

http://www.php.net/manual/en/xsltprocessor.registerphpfunctions.phpとhttp://php.net/manual/en/function.stream-wrapper-register.phpも参照してください。 'myvar:// variablename'のようなXML/XSLT内でも使用できます(これを行うビルドがある場合)。 – hakre

+0

あなたはまだ回答を受け入れていません。あなたは、あなたが何を求めているのか、またその答えがあなたを満足させない理由を明確にしてください。 – Gordon

答えて

2

テンプレートを書く本当の理由はありませんそのような場合は、XSLTはブロックを実行できます。あなたがに見ることができることは

は、テンプレートの値を変更すると

  • ​​

は、テンプレート内でPHPの関数を使用することです。これはおそらくもっと意味をなさないでしょう。

0

いいえ、そんなことはできません。 拡張関数を書く方法である外部名前空間のコードを含めることはできますが、PHPで行うことはできないと思われます。通常、ライブラリをロードしてライブラリをロードする必要があるため、コンパイル済みの言語になります。

達成する必要があるのは何ですか。あなたがそれを気にするとXSLで達成できないほどのことはありません。あなたの例のような些細なものには問題はありません。

関連する問題