Новые книги

Словарь содержит около 1500 терминов (слов, словосочетаний и аббревиатур), относящихся к узкоспециальной лексике из области создания и обслуживания сетей передачи данных. Для каждого термина приводится не только русский эквивалент, но и его определение, что позволяет активно использовать этот словарь при подготовке специалистов по компьютерным наукам. Словарь также может быть полезен для обучения русскоязычных студентов в международных академиях информационных технологий (Cisco, Microsoft и др.). Значительная часть словарных статей сопровождается ссылками на другие термины, что обеспечивает системное усвоение специальных понятий.

Для студентов вузов и ccузов, переводчиков и специалистов в области информационных технологий.
Переговорные техники, описанные Крисом Воссом, родились из сокрушительных поражений ФБР. После трагических событий на ферме Рэнди Уивера в штате Айдахо в 1992 году и в секте «Ветвь Давида» в 1993 году, где в общей сложности погибло почти 100 человек, стало понятно: традиционные методики не работают в экстремальных ситуациях. Поэтому ФБР начало усиленно искать принципиально новые подходы. В результате появились 9 принципов, изложенные автором этой книги, – топ-переговорщиком ФБР с двадцатилетним стажем.

Эта книга – потрясающе увлекательное и одновременно простое руководство по любым переговорам. Не важно, идет ли речь о покупке международной корпорации или ремонте стиральной машинки, методика Криса Восса научит вас добиваться своего. При любых условиях. При любых раскладах. Без необходимости идти на компромисс.

Книга также выходит под названием «Переговоры без компромиссов. Веди переговоры так, словно от них зависит твоя жизнь».

xslt_process

Учебник РНР
Назад Вперёд

xslt_process

(PHP 4 >= 4.0.3)

xslt_process - выполняет XSLT-трансформацию.

Описание

mixed xslt_process (resource xh, string xml, string xsl [, string result [, array arguments [, array parameters]]])

xslt_process() это краеугольный камень нового расширения XSLT. Она даёт возможность выполнять XSLT-трансформацию с использованием почти всех типов источников ввода. Это делается с помощью буферов аргументов -- концепции, взятой из Sablotron XSLT-процессора (в настоящее время - единственного XSLT-процессора, который поддерживается данным расширением).

Самая простая трансформация функцией xslt_process() - это трансформация XML-файла XSLT-файлом с помещением результата в третий файл, содержащий новый XML (или HTML)-документ. Сделать это с помощью sablotron действительно довольно легко ...

Пример 1. Использование xslt_process() для трансформации XML-файла и
XSL-файла в новый XML-файл
<?php

// Разместить новый XSLT-процессор
$xh = xslt_create();

// Обработать документ
if (xslt_process($xh, 'sample.xml', 'sample.xsl', 'result.xml')) {
    print "SUCCESS, sample.xml was transformed by sample.xsl into result.xml";
    print ", result.xml has the following contents\n<br>\n";
    print "<pre>\n";
    readfile('result.xml');
    print "</pre>\n";
}
else {
    print "Sorry, sample.xml could not be transformed by sample.xsl into";
    print "  result.xml the reason is that " . xslt_error($xh) . " and the ";
    print "error code is " . xslt_errno($xh);
}

xslt_free($xh);

?>

Хотя эта функциональность великолепна, часто, особенно в окружении web, вам понадобится выводить результату напрямую. Следовательно, если вы опустите третий аргумент для функции xslt_process() (или предоставите NULL-значение этого аргумента), она автоматически возвратит значение XSLT-трансформации, вместо записи его в файл ...

Пример 2. Использование xslt_process() для трансформации XML-файла и XSL-файла в переменную, содержащую результирующие XML-данные
<?php

// Разместить новый XSLT-процессор
$xh = xslt_create();

// обработать документ, возвращая результат в переменной $result
$result = xslt_process($xh, 'sample.xml', 'sample.xsl');
if ($result) {
    print "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    print " variable, the \$result variable has the following contents\n<br>\n";
    print "<pre>\n";
    print $result;
    print "</pre>\n";
}
else {
    print "Sorry, sample.xml could not be transformed by sample.xsl into";
    print "  the \$result variable the reason is that " . xslt_error($xh) . 
    print " and the error code is " . xslt_errno($xh);
}

xslt_free($xh);

?>

Это были два простейших случая XSLT-транфсормации, и я могу с уверенностью сказать - самые распространённые случаи, однако иногда вы получаете ваш XML и XSLT-код из внешних источников, таких как БД или сокет. В этих случаях у вас будут XML и/или XSLT-данные в переменной -- и в работающих приложениях перегрузка при дампе их в файл может оказаться значительной. Вместо файлов как аргументов XML и XSLT для xslt_process(), вы можете специфицировать "заглушки документов", которые затем замещаются значениями из массива аргументов (5-й параметр функции xslt_process()). Далее идёт пример процессинга XML и XSLT в результирующую переменную вообще без использования файлов.

Пример 3. Использование xslt_process() для трансформации переменной, содержащей XML-данные, и переменной, содержащей XSL-данные, в переменную, содержащую результирующие XML-данные
<?php
// $xml и $xsl содержат XML и XSL-данные

$arguments = array(
     '/_xml' => $xml,
     '/_xsl' => $xsl
);

// разместить новый XSLT-процессор
$xh = xslt_create();

// обработать документ
$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments); 
if ($result) {
    print "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    print " variable, the \$result variable has the following contents\n<br>\n";
    print "<pre>\n";
    print $result;
    print "</pre>\n";
}
else {
    print "Sorry, sample.xml could not be transformed by sample.xsl into";
    print "  the \$result variable the reason is that " . xslt_error($xh) . 
    print " and the error code is " . xslt_errno($xh);
}
xslt_free($xh);
?>

Наконец, последний аргумент функции xslt_process() это любые параметры, которые вы хотите передать в XSLT-документ. Можно получить доступ к этим параметрам внутри ваших XSL-файлов с помощью инструкции <xsl:param name="parameter_name">.


Назад Оглавление Вперёд
xslt_free Вверхxslt_set_base