Source for file Xslt.php
Documentation is available at Xslt.php
// vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 fdm=marker encoding=utf8 :
* Pxxo - build self-supported and interoperable Web graphical components
* Copyright (c) 2008, Nicolas Thouvenin
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the author nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* @copyright Copyright (c) 2008 Nicolas Thouvenin
* @license http://opensource.org/licenses/bsd-license.php
* @version $Id: Xslt.php,v 1.11 2008/02/29 13:35:22 thouveni Exp $
* Encapsule une transformation XSL
* $x = new Pxxo_Xslt('exemple01.xml', 'exemple01.xsl');
* @copyright Copyright (c) 2008 Nicolas Thouvenin
* @license http://opensource.org/licenses/bsd-license.php
* Parametres pour la feuille
* active ou non l'execution du PHP généré par le XSL
* active ou non les fonctions PHP à l'intetrieur du XSL
* active si possible xsltcache
* @param string Chemin du fichier xml
* @param string Chemin du fichier xsl
* @param mixed Tableau de partametres
* Construction automatique d'un objet
* @param string which handler you want to use
* @return Object Pxxo_Xslt
public static function factory($s =
'')
* Effectue la transformation
* @param array options de tranformation
public function transform($options =
array())
if ($this->_out ===
false ) {
$xmldom =
new DOMDocument;
if (isset
($options['xmldom'])) foreach($options['xmldom'] as $k =>
$v) $xmldom->$k =
$v;
if(!$xmldom->loadXML($this->_XML)) {
return trigger_error("XSLT initialization failed : unable to open XML Buffer", E_USER_ERROR);
if (!$xmldom->load($this->_XML)) {
return trigger_error("XSLT initialization failed : unable to open XML file", E_USER_ERROR);
$proc->importStyleSheet($this->_XSL);
$xsldom =
new DOMDocument;
if (!$xsldom->load($this->_XSL)) {
return trigger_error("XSLT initialization failed : unable to open XSL file", E_USER_ERROR);
if(!$xsldom->loadXML($this->_XSL)) {
return trigger_error("XSLT initialization failed : unable to open XSL Buffer", E_USER_ERROR);
if (isset
($options['xsldom'])) foreach($options['xsldom'] as $k =>
$v) $xsldom->$k =
$v;
$proc =
new XSLTProcessor;
$proc->importStyleSheet($xsldom);
$proc->registerPHPFunctions();
foreach($this->_PAR as $k =>
$v) {
$proc->setParameter('', $k, $v);
$this->_out =
$proc->transformToXML($xmldom);
return trigger_error("XSLT transform failed : unknown error ", E_USER_ERROR);
eval
('?'.
'>'.
$this->_out);
* active l'exécution de PHP dans les modèles XSL
* désactive l'exécution de PHP dans les modèles XSL
* Fixe une chaine ou un fichier XML
* Fixe une chaine ou un fichier XSL
* Passe des paramètres à Sablotron qui seront intégrés comme variables
foreach($t as $key =>
$val) {
$this->_PAR[$key] =
$val;
Documentation generated on Thu, 13 Mar 2008 22:03:36 +0100 by phpDocumentor 1.4.1