Вывести массив php в xslt - PullRequest
       8

Вывести массив php в xslt

2 голосов
/ 16 марта 2009

Есть ли способ напечатать массив php в xslt? Я работаю с сессиями php и пытаюсь напечатать массив отверстий в таблице стилей xslt.

1 Ответ

6 голосов
/ 16 марта 2009

Чтобы использовать ваш массив в таблице стилей 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...