Beispiel #1
0
 /**
  * @param string $inFile
  * @param string $xssFile
  * @param string $outFileOrDir
  * @throws \Exception
  */
 public static function applyXslt($inFile, $xssFile, $outFileOrDir)
 {
     if (!file_exists($inFile)) {
         throw new \Exception("File {$inFile} cannot be found");
     }
     if (!file_exists($xssFile)) {
         throw new \Exception("File {$xssFile} cannot be found");
     }
     // Load the XML source
     $xml = new \DOMDocument();
     $xml->load($inFile);
     $xsl = new \DOMDocument();
     $xsl->load($xssFile);
     // Configure the transformer
     $processor = new \XSLTProcessor();
     if (version_compare(PHP_VERSION, '5.4', "<")) {
         if (defined('XSL_SECPREF_WRITE_FILE')) {
             ini_set("xsl.security_prefs", XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE);
         }
     } else {
         // the php online docs only mention setSecurityPrefs, but somehow some installs have setSecurityPreferences...
         if (method_exists('XSLTProcessor', 'setSecurityPrefs')) {
             $processor->setSecurityPrefs(XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE);
         } else {
             $processor->setSecurityPreferences(XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE);
         }
     }
     $processor->importStyleSheet($xsl);
     // attach the xsl rules
     if (is_dir($outFileOrDir)) {
         if (!$processor->setParameter('', 'base.dir', realpath($outFileOrDir))) {
             echo "setting param base.dir KO\n";
         }
     }
     $out = $processor->transformToXML($xml);
     if (!is_dir($outFileOrDir)) {
         file_put_contents($outFileOrDir, $out);
     }
 }
Beispiel #2
0
if (!file_exists($xss)) {
    die("KO: file {$xss} cannot be found\n");
}
// Load the XML source
$xml = new DOMDocument();
$xml->load($doc);
$xsl = new DOMDocument();
$xsl->load($xss);
// Configure the transformer
$proc = new XSLTProcessor();
if (version_compare(PHP_VERSION, '5.4', "<")) {
    if (defined('XSL_SECPREF_WRITE_FILE')) {
        ini_set("xsl.security_prefs", XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE);
    }
} else {
    $proc->setSecurityPreferences(XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE);
}
$proc->importStyleSheet($xsl);
// attach the xsl rules
//if ($_SERVER['argc'] >= 4)
//{
if (is_dir($_SERVER['argv'][3])) {
    if (!$proc->setParameter('', 'base.dir', realpath($_SERVER['argv'][3]))) {
        echo "setting param base.dir KO\n";
    }
} else {
    //echo "{$_SERVER['argv'][3]} is not a dir\n";
}
//}
$out = $proc->transformToXML($xml);
if (!is_dir($_SERVER['argv'][3])) {