XSLT
Комплексная обработка данных
🕛 01.11.2006, 15:34
XSLT (Extensible Stylesheet Language (XSL) Transformations) - язык преобразований XML-документов в другие XML-документы; стандарт, определенный Консорциумом World Wide Web (W3C). С документацией можно ознакомиться по адресу: http://www.w3.org/TR/xslt. Технология предназначена для разделения содержания и формы представления документов с помощью шаблонов преобразования XSL. Обычно документы XML преобразовывают в формат HTML.
Это расширение использует Sabloton и expat (http://www.gingerall. com/). В UNIX при компиляции PHP запустите configure с ключом -with-sablot.
xslt_create
Инициализация нового процессора XSL
resource xslt_create(void);
Функция возвращает дескриптор, используемый последующими XSL-функциями.
xslt_free
Закрытие процессора XSLT
void xslt_free (resource xh)
xslt_openlog
Назначение журнала сообщений процессора XSLT
bool xslt_openlog ([resource xh, string logfile, int loglevel])
В указанный файл logfile будут записываться все сообщения об ошибках.
xslt_closelog
Закрытие и очистка журнала сообщений процессора XSLT
bool xslt_closelog (resource xh)
xslt_errno
Получение номера текущей ошибки процессора XSLT
int xslt_errno ([int xh])
xslt_error
Получение описания текущей ошибки
mixed xslt_error ([int xh])
xslt_fetch_result
Получение преобразованных данных из буфера
string xslt_fetch_result ([int xh, string result_name])
Если имя буфера не указывается в result_name, то подразумевается «/jresult».
xslt_output_ begintransform
Начало преобразования XSLTc выводом
void xslt_output_begintransform (string xslt_filename)
Функция заставляет преобразовывать все выводимые данные с учетом шаблона из файла xslt_filename. Затем следует вызвать функцию xslt_output_endtransform().
<?php $xsl_file = "article.xsl";
xslt_output_begintransform($xsl_file):
Sdoc = new_xmldoc('1.0').
Sarticle = $doc->new_root('article'};
$article->new_child('title'. 'The History').
$article->new_child('author'. 'Peter'),
$article->new_child('body'. 'Nothing interesting has happened'):
echo $doc->dumpmem(); xslt_output_endtransform(). ?>
xslt_output_endtransform
Завершение преобразования, начатого xslt_output begintransform void xslt_output_endtransform (void);
Эту функцию следует вызвать для того, чтобы вывести преобразованный документ.
xslt_process
Преобразование документа XML с помощью шаблона XSL
bool xsH_process (string xsl_data, string xirHI_data, string result) В аргументе xsl_data указывается текст шаблона XSLT, а в xml_data - текст документа XML. Возвращает TRUE или FALSE - при ошибке.
См. также: xslt_errno() и xslt_error() для получения кодов ошибки.
<?php JxslData =
<xsl:stylesheet version="l 0"
xmlns:xsb"http-//www.w3 org/1999/XSL/Transfonn">
<xsl template match="article">
<table border="l" cellpadding="2" cellspacing="l"> <tr>
<td vndth="800">
<h2><xsl value-of select,="title"></h2> <h3>
<xsl value-of select="author"></h3>
<br><xsl.value-of select="body"> </td> </tr>
</table> </xsl-templdte> </xsl:stylesheet>
SxmlData ' ' <?xml version^"!.0"?> <article>
<title>Learning Language</title>
<author>I Myself</author> <body>
Essential phrases: <br> <br> Hello.
Good day.<br> </body> </article>';
if (xslt_process($xs!Data. SxmlData. $resuH.O {
echo "Here is the article:<br>\n<br>", Sresult;
} else ( echo "Ошибка преобразования XSL.
\nUHonep' " xslt_errno() .
"\п\Описание: " xslt_error() . "\n"; exit: } ?>
xslt_run
Применение XSLT к файлу
bool xslt_run ([resource xh, string xslt_file. string xmt_data_file. string result, array xslt_params, array xslt_args]]])
Преобразовывает файл xm!_data_file, применяя к нему шаблон из файла xslt_file. Шаблон получает доступ к массиву параметров xslt_ params и аргументов xstt_args. Результат XSLT-трансформации заносится в именованный буфер (по умолчанию «_result»).
xslt_set_sax_handler
Установка обработчиков SAX для процессора XSLT
bool xslt_set_sax_handler (resource xh. array handlers)
xslt_transform
Выполнение трансформации XSLT
bool xslt_transforn> (string xsl, string xml, string result, string params, string args, string resultBuffer)
Предоставляет расширенный интерфейс библиотеки Sablotron без необходимости использования ресурсов API.