在xslt中打印php数组

在xslt中打印php数组,php,xslt,session,Php,Xslt,Session,有没有办法在xslt中打印php数组?我正在处理php会话,并尝试在xslt样式表中打印孔数组。要在xslt样式表中使用数组,首先必须将数组转换为XML表示形式。此表示形式在很大程度上取决于数组结构。一个简单的方法是: $array = ( 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' ); // ext/DOM can also be used to create XML rep

有没有办法在xslt中打印php数组?我正在处理php会话,并尝试在xslt样式表中打印孔数组。

要在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);
$array=(
'key1'=>'value1',
'key2'=>'value2',
“键3”=>“值3”
);
//ext/DOM还可用于创建XML表示
$xml=newXMLWriter();
$xml->openMemory();
$xml->startDocument('1.0','UTF-8');
$xml->startElement('array');
//简单的一维数组遍历-根据您的数组结构,这可能要复杂得多(例如递归)
foreach($key=>$value的数组){
$xml->writeElement($key,$value);
}
$xml->endElement();
/*
*$xml看起来像
* 
*价值1
*价值2
*价值3
* 
*/
//将XMLWriter文档转换为DOM表示(如果使用ext/DOM创建XML,则可以跳过)
$doc=DOMDocument::loadXML($xml->outputMemory());
//加载XSL样式表
$xsl=DOMDocument::load('stylesheet.xsl');
//启动XSLT处理器
$proc=new XSLTProcessor();
$proc->importStyleSheet($xsl);
//输出转换
echo$proc->transformToXML($xml);

更具体一点。你到底想干什么?