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; }