(PHP 4 >= 4.0.6)
xslt_set_scheme_handlers — Bir XSLT işlemci için şema eylemcileri tanımlar
$işlemci
, array $eylemciler
)Belge için şema (XPath) eylemcileri tanımlar.
işlemci
xslt_create() tarafından oluşturulmuş bir XSLT işlemci özkaynağı.
eylemciler
Şu anahtarları içeren bir dizi:: "get_all", "open", "get", "put" ve "close".
Her eleman bir işlev ismi veya array($nesne, "yöntem") biçeminde bir dizi olmalıdır.
Belirtilen dizinin bütün elemanları içermesi gerekmez. Sadece, yukarıda bahsedildiği gibi her elemanın "eylem" => "işlev" biçemine uygun verilmiş olması gerekir.
Şema eylemci işlevleri şu söz dizimleri ile çağrılır:
string get_all(resource işlemci, string şema, string kalan) resource open(resource işlemci, string şema, string kalan) int get(resource işlemci, resource dt, string &veri) int put(resource işlemci, resource dt, string veri) void close(resource işlemci, resource dt)
Hiçbir değer dönmez.
Örnek 1 - xslt_set_scheme_handlers() örneği
Burada "file_exists()" PHP işlevinin bir gerçeklenimi örneklenmiştir.
<?php
// Eylemci işlevin tanımı
function şemaEylemcim($işlemci, $şema, $kalan)
{
$kalan = substr($kalan,1); // motor tarafından özdevinimli olarak
// eklenen ilk /'ı silelim
if ($şema == 'file_exists') {
// sonucu küçük bir XML dizgesine gömelim
return '<?xml version="1.0" encoding="UTF-8"?><root>' .
(file_exists($kalan) ? 'true' : 'false') . '</root>';
}
}
$şemaEylemciDizisi = array('get_all' => 'şemaEylemcim');
// Motoru çalıştıralım
$params = array();
$işlemci = xslt_create();
xslt_set_scheme_handlers($işlemci, $şemaEylemciDizisi);
$sonuç = xslt_process($işlemci, "belgem.xml", "belgem.xsl",
NULL, array(), $params);
xslt_free($işlemci);
echo $sonuç;
?>
Ardından, biçembendin içinde belli bir dosyanın varlığına bakabilirsiniz:
<xsl:if test="document('file_exists:birXMLdosya.xml')/root='true'"> <!-- Dosya mevcut --> </xsl:if>