Exemple #1
0
 function xml_xsl($xml, $xsl, $debug = "")
 {
     $hidden = '';
     $xslBaseUri = $this->xslBaseUri;
     if ($xml == '') {
         die("falta o XML");
     }
     if ($xsl == '') {
         die("falta XSL para transformar\n");
     }
     if ($debug == "XML") {
         die($xml);
     }
     if ($debug == "XSL") {
         die($xsl . '<!--' . $xslBaseUri . $xsl . '-->');
     }
     if (!file_exists($xsl)) {
         die($xsl . " not found.");
     }
     $transform = new XSLTransformer();
     if (strpos(' ' . $xml, '/') == 1 || strpos(' ' . $xml, 'http://') == 1 || strpos(' ' . $xml, 'ftp://') == 1) {
     } else {
         $xml = $this->insertProcessingInstruction(trim($xml));
     }
     if ($xslBaseUri) {
         $transform->setXslBaseUri("file://" . $xslBaseUri);
     }
     if ($transform->setXml($xml) == false) {
         die($transform->getErrorMessage());
     }
     if ($transform->setXsl($xsl) == false) {
         die($transform->getErrorMessage());
     }
     if ($transform->transform() == false) {
         $r = $transform->getErrorMessage();
     } else {
         //transform sempre retorna UTF-8
         $r = $transform->getOutput();
         //$r = utf8_decode($r);
         /*
         			if (!$this->isUTF8($r)){
         				//necessario fazer utf8_decode
         			   $r = html_entity_decode($r);
         		       $r = utf8_decode($r);
         			   $r = preg_replace("/UTF-8/i",$this->find($r,' encoding="','"'),$r);			 
         			}			*/
     }
     //die("XML.php xml é iso?",	strpos(strtolower($xml),'iso-8859-1'));
     //debug("XML.php r é iso?",	strpos(strtolower($r),'iso-8859-1'));
     return $r . $hidden;
 }
function processTransformation($xml, $xsl)
{
    global $def;
    $result = "";
    $xslParams = array('xml-path' => $def['DATABASE_PATH'] . "xml/");
    $transform = new XSLTransformer();
    if ($def["LETTER_UNIT"] != "") {
        $transform->setXslBaseUri("file://" . $def["LETTER_UNIT"] . "/" . $def["SITE_PATH"]);
    } else {
        $transform->setXslBaseUri("file://" . $def["SITE_PATH"]);
    }
    if ($transform->setXml($xml) == false) {
        die($transform->getErrorMessage());
    }
    if ($transform->setXsl($xsl) == false) {
        die($transform->getErrorMessage());
    }
    $transform->setXslParameters($xslParams);
    if ($transform->transform() == false) {
        print $transform->getErrorMessage();
    } else {
        $result = utf8_decode($transform->getOutput());
    }
    return $result;
}