2009-03-16 9 views
2

xsltでphp配列を印刷する方法はありますか?私はPHPセッションで作業していて、xsltスタイルシートに穴の配列を印刷しようとしています。xsltでphp配列を印刷する

+0

もっと具体的にする。あなたは正確に何をしようとしていますか? – vartec

答えて

6

XSLTスタイルシートで配列を使用するには、まず配列をXML表現に変換する必要があります。この表現は、あなたのアレイ構造に強く依存します。簡単な方法は次のとおりです。

$array = (
    'key1' => 'value1', 
    'key2' => 'value2', 
    'key3' => 'value3' 
); 

// ext/DOM can also be used to create XML representation 
$xml = new XMLWriter(); 
$xml->openMemory(); 
$xml->startDocument('1.0', 'UTF-8'); 
$xml->startElement('array'); 
// simple one-dimensional array-traversal - depending on your array structure this can be much more complicated (e.g. recursion) 
foreach ($array as $key => $value) { 
     $xml->writeElement($key, $value); 
} 
$xml->endElement(); 

/* 
* $xml will look like 
* <array> 
*  <key1>value1</key1> 
*  <key2>value2</key2> 
*  <key3>value3</key3> 
* </array> 
*/ 

// convert XMLWriter document into a DOM representation (can be skipped if XML is created with ext/DOM) 
$doc = DOMDocument::loadXML($xml->outputMemory()); 

// Load XSL stylesheet 
$xsl = DOMDocument::load('stylesheet.xsl'); 

// Fire-up XSLT processor 
$proc = new XSLTProcessor(); 
$proc->importStyleSheet($xsl); 

// Output transformation 
echo $proc->transformToXML($xml);