ShortXSLT:挿入演算子、if、elseなどを使用したXSLTの簡略化された構文

Dklab_ShortXSLTライブラリは、PHPに組み込まれたXSLTProcessorおよびDOMDocumentクラスのXSLT簡易構文をサポートするシステムです。 実際、XSLTダイアレクトから標準XSLTへのコンパイラであり、オンザフライで起動され、呼び出しコードに対して透過的です(もちろん、次のテンプレートが変更されるまでコンパイルを開始するようにキャッシュすることができます)。 PHPスクリプトでXSLTを使用する場合、コードを数行追加することでShortXSLTを有効にできます。



標準のXSLT構文は非常に扱いにくく、Webプログラミングで使用する場合は不便です。 ライブラリは、この問題を軽減するのに役立ちます。



省略バージョンは、タグの外側の値の貼り付け、言語定数の貼り付け、sprintfのような定数の貼り付け、if-then-elseif、foreachの構造に対してサポートされています。



ShortXSLTの例:

 ...
 <xsl:テンプレートの一致= "/">
   {if / some / node = 1}
     {#hello}、世界!  {#my_name_is(/ my / name)}。
   {elseif / other / node = / some / node}
     <p>あなたは{/ money}ドルを持っています</ p>
   {else}
     {foreach / nodes / *}
      ノード{。} <br/>
     {/ foreach}
   {/ if}
 </ xsl:template>
 ...




これも同じですが、純粋なXSLTの場合:

 ...
 <xsl:テンプレートの一致= "/">
   <xsl:選択>
     <xsl:test = "/ some / node = 1">の場合
       <xsl:select-of select = "h:const( 'hello')" />、world! 
       <xsl:select-of select = "h:const( 'my_name_is'、/ my / name)" />。
     </ xsl:when>
     <xsl:test = "/ other / node = / some / node"の場合>
       <p> <xsl:value-of select = "/ money" />ドルがあります。</ p>
     </ xsl:when>
     <xsl:それ以外>
       <xsl:for-each select = "/ nodes / *">
        ノード<xsl:値の選択= "。"  /> <br/>
       </ xsl:for-each>
     </ xsl:それ以外>
   </ xsl:選択>
 </ xsl:template>
 ...


ShortXSLTは、XSLT命令セットのみを拡張します。 ただし、すべての標準XSLT設計は引き続き利用可能です。 たとえば、<xsl:value-of select = "node" disable-output-escaping = "yes" />を使用して、結果のドキュメントに "raw" HTMLを挿入できます({node}構造は常に「クエンチされた」データを挿入します)。



ライブラリはLGPLの下でライセンスされており、 dklab.ru / lib / Dklab_ShortXSLTからダウンロードできます



All Articles