(PHP 4 >= 4.0.6)
xslt_set_scheme_handlers — تعیین کنترلکننده شما برای پردازشگر XSLT
ثبت کنترلکنندههای شما (کنترل کننده XPath) برای سند.
شناساگر پیوند پردازشگر XSLT ساخته شده توسط xslt_create().
آرایه به همراه کلیدهای زیر: "get_all"، "open"، "get"، "put"، و "close".
هر ورودی باید نام تابع یا آرایه با قالب زیر باشد : array($obj, "method").
توجه کنید آرایه داده شده نیازمند تمام عناصر متفاوت کنترلکننده شما نیست (با وجود امکان پذیرش تمام آنها) اما تنها نیازمند تشکیل قالب "handler" => "fonction" توضیح داده شده در بالاست.
هر تابع کنترلکننده شما فراخوانی شده در قالب زیر هستند:
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)
No value is returned.
Example #1 مثال xslt_set_scheme_handlers()
به عنوان مثال اینجا پیادهسازیتابع "file_exists()" در PHP است.
<?php
// Definition of the handler
function mySchemeHandler($processor, $scheme, $rest)
{
$rest = substr($rest,1); // to remove the first / automatically added by the engine
if ($scheme == 'file_exists') {
// result is embedded in a small xml string
return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($rest) ? 'true' : 'false') . '</root>';
}
}
$SchemeHandlerArray = array('get_all' => 'mySchemeHandler');
// Start the engine
$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;
?>
سپس در stylesheet شما میتوانید وجود فایل را به صورت زیر آزمایش کنید:
<xsl:if test="document('file_exists:anotherXMLfile.xml')/root='true'"> <!-- The file exist --> </xsl:if>