xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlers Задает обработчики схемы для XSLT-процессора

Описание

void xslt_set_scheme_handlers ( resource $xh , array $handlers )

Регистрирует обработчики схемы (XPath обработчики) для документа.

Список параметров

xh

Идентификатор ссылки XSLT-процессора, созданный с помощью функции xslt_create().

handlers

Массив со следующими ключами: "get_all", "open", "get", "put", и "close".

Каждое значение массива должно быть именем функции или массивом в следующем формате: array($obj, "method").

Обратите внимание, наличие всех обработчиков схемы в массиве необязательно (хотя возможно), но каждый элемент массива должен строго соответствовать формату "обработчик" => "функция", описанному выше.

Ниже представлены объявления, которым функции-обработчики схемы должны соответствовать:

string   get_all(resource processor, string scheme, string rest)
resource open(resource processor, string scheme, string rest)
int      get(resource processor, resource fp, string &data)
int      put(resource processor, resource fp, string data)
void     close(resource processor, resource fp)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования xslt_set_scheme_handlers()

В качастве примера представлена реализация PHP функции "file_exists()".

<?php

// Определение обработчика
function mySchemeHandler($processor$scheme$rest)
{
    
$rest substr($rest,1);    // чтобы удалить первый / автоматически добавленный движком
    
if ($scheme == 'file_exists') {
        
// результат представлен в виде небольшой XML строки
        
return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($rest) ? 'true' 'false') . '</root>';
    }
}

$SchemeHandlerArray = array('get_all' => 'mySchemeHandler');

// запуск движка
$params = array();
$xh xslt_create();

xslt_set_scheme_handlers($xh$SchemeHandlerArray);

$result xslt_process($xh"myFile.xml""myFile.xsl"NULL, array(), $params);
xslt_free($xh);

echo 
$result;

?>

Теперь можно проверить существование файлов прямо внутри стилевой таблицы:

<xsl:if test="document('file_exists:anotherXMLfile.xml')/root='true'">
 <!-- The file exist -->
</xsl:if>

Смотрите также

Коментарии

Автор:
<xsl:stylesheet version="2.0"
    <xsl:output method="xhtml"/>
    <xsl:param name="isin">
    </xsl:param>
    <xsl:template match="/aktien">
    <html>
    <head>
      <title></title>
      <meta charset="utf-8"/>
    </head>
    <body>
      <xsl:for-each select="aktie">
      <p>Name: <xsl:value-of select="name"/><br/>
      <xsl:choose>
      <xsl:when test="$isin=''">
        Mittelwert: <xsl:value-of select="format-number(sum(kurse/kurs/ausgabepreis) div count(kurse/kurs/ausgabepreis),'0.00')"/>
      </xsl:when>
      <xsl:otherwise>
      <xsl:if test="$isin=@isin">
        Mittelwert: <xsl:value-of select="format-number(sum(kurse/kurs/ausgabepreis) div count(kurse/kurs/ausgabepreis),'0.00')"/>
      </xsl:if>
      </xsl:otherwise>
      </xsl:choose>
      </p>
      </xsl:for-each>
      </body>
    </html>
    </xsl:template>
</xsl:stylesheet>
2012-01-16 14:18:29
http://php5.kiev.ua/manual/ru/function.xslt-set-scheme-handlers.html

    Поддержать сайт на родительском проекте КГБ