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; }
<?php $serviceUrl = "http://trigramas.bireme.br/cgi-bin/mxlind/cgi=@areasgeo?pid=" . $pid; $xmlFile = file_get_contents($serviceUrl); $xml = '<?xml version="1.0" encoding="ISO-8859-1"?>'; $xml .= '<root>'; $xml .= '<vars> <lang>' . $lang . '</lang> <applserver>' . $applServer . '</applserver> </vars>'; $xml .= str_replace('<?xml version="1.0" encoding="ISO-8859-1" ?>', '', $xmlFile); $xml .= '</root>'; if ($_REQUEST['debug'] == 'xml') { die($xml); } $transformer = new XSLTransformer(); $transformer->setXslBaseUri($defFile["PATH_XSL"]); $transformer->setXml($xml); $transformer->setXslFile($defFile["PATH_XSL"] . "datasus.xsl"); $transformer->transform(); $output = $transformer->getOutput(); $output = str_replace('&', '&', $output); $output = str_replace('<', '<', $output); $output = str_replace('>', '>', $output); $output = str_replace('"', '"', $output); $output = str_replace('<p>', ' ', $output); $output = str_replace('</p>', ' ', $output); echo $output; ?> </div> </TD> </TR>
$xml .= '</root>'; if (getenv("ENV_SOCKET") == "true"){ //socket $xslFile = strtoupper($xslName); //die("socket = false"); } else { $xslFile = file_get_contents($defFile->getKeyValue("PATH_XSL").$xslName.".xsl"); } $xsl = $xslFile; if(isset($_REQUEST['debug'])) { echo '<textarea cols="80" rows="10">'; echo $xml; echo '</textarea>'; echo '<textarea cols="80" rows="10">'; echo file_get_contents($xslFile); echo '</textarea>'; } $transformer->setXslBaseUri($defFile->getKeyValue("PATH_XSL")); //$transformer->setXml(utf8_encode($xml)); $transformer->setXml($xml); $transformer->setXsl($xsl); $transformer->transform(); $result = $transformer->getOutput(); if($transformer->getError()){ echo $transformer->getError(); } echo $result; ?>
$fullTitle = utf8_decode($fullTitle); } } // XML Final que contem os dados que precisamos do XML1 e XML2 $xmlFinal = '<?xml version="1.0" encoding="ISO-8859-1"?>'; $xmlFinal .= substr($xml2, strpos($xml2, "<root>"), strpos($xml2, "<ref_TITLE>") - strpos($xml2, "<root>")) . '<vars><refid>' . $_REQUEST['refid'] . '</refid><htdocs>' . $pathHtdocs . '</htdocs><service_log>' . $flagLog . '</service_log></vars>'; $xmlFinal .= " <ref_TITLE><![CDATA[" . $fullTitle . "]]></ref_TITLE>"; $xmlFinal .= substr($xml2, strpos($xml2, "<TITLE>")); if ($_REQUEST['debug2'] == 'on') { die($xmlFinal); } // Transformação Final, página de links de referencia $transformerFinal = new XSLTransformer(); $xslFinal = $pathHtdocs . "xsl/sci_reflinks.xsl"; //die("socket = true"); $transformerFinal->setXslBaseUri($pathHtdocs . "xsl"); $transformerFinal->setXml($xmlFinal); $transformerFinal->setXslFile($xslFinal); $transformerFinal->transform(); $output = $transformerFinal->getOutput(); if ($transformer->transformedBy == "PHP") { //PHP $output = utf8_decode($output); } if ($transformerFinal->getError()) { echo $transformerFinal->getError(); } $output = str_replace('&', '&', $output); $output = str_replace('<', '<', $output); $output = str_replace('>', '>', $output); $output = str_replace('"', '"', $output);
} ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <!-- <link rel="stylesheet" href="/applications/scielo-org/css/public/style-<?php echo $lang; ?> .css" type="text/css" media="screen"/> --> </head> <body> <?php $xsl = dirname(__FILE__) . "/report.xsl"; $transformer = new XSLTransformer(); //die("socket = true"); $transformer->setXslBaseUri(dirname(__FILE__)); $transformer->setXml($xml); $transformer->setXslFile($xsl); $transformer->transform(); $output = $transformer->getOutput(); echo $output; $pgPrevious = $pg - 1; $pgNext = $pg + 1; $totalPages = (int) ceil(substr($xml, strpos($xml, "Isis_Total") + 24, 4) / $viewNum); $previous = str_replace("&pg=" . $pg, "", $_SERVER['REQUEST_URI']); $previous .= "&pg=" . $pgPrevious; $next = str_replace("&pg=" . $pg, "", $_SERVER['REQUEST_URI']); $next .= "&pg=" . $pgNext; if ($pg <= $totalPages) { //if($totalPages!=1){ if ($pgPrevious > 0) {
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; }
function generatePayload($ws_client_url, $service, $service_name, $parameters, $xsl) { global $debug, $defFile; //die($service_name." - ".$service); switch ($service_name) { case "Identify": $response = listRecords($set = $parameters["set"], $from = $parameters["from"], $until = $parameters["until"], $control = $parameters["control"], $lang = "en", $nrm = "iso", $count = 30, $debug = false); break; case "ListMetadataFormats": $response = getAbstractArticle($set = $parameters["set"], $from = $parameters["from"], $until = $parameters["until"], $control = $parameters["control"], $lang = "en", $nrm = "iso", $count = 30, $debug = false); break; case "ListIdentifiers": $response = listRecords($set = $parameters["set"], $from = $parameters["from"], $until = $parameters["until"], $control = $parameters["control"], $lang = "en", $nrm = "iso", $count = 30, $debug = false); break; case "ListSets": $response = getTitles($lang = "en", $debug = false); break; case "ListRecords": $response = ListRecords($set = $parameters["set"], $from = $parameters["from"], $until = $parameters["until"], $control = $parameters["control"], $lang = "en", $nrm = "iso", $count = 30, $debug = false); break; case "GetRecord": $response = getAbstractArticle($pid = $parameters["pid"], $lang = "en", $ws = $parameters["ws_oai"], $debug = false); break; } // $result = ""; if (!$debug) { $transform = new XSLTransformer(); if (getenv("ENV_SOCKET") != "true") { //socket $xsl = file_get_contents($defFile["PATH_OAI"] . $xsl); } else { $xsl = str_replace('.XSL', '', strtoupper($xsl)); } $transform->setXslBaseUri($defFile["PATH_OAI"]); $transform->setXsl($xsl); $transform->setXml($response); $transform->transform(); if ($transform->getError()) { // Transformation error echo "XSL Transformation error\n"; echo $transform->getError(); $transform->destroy(); exit; } $result = $transform->getOutput(); $transform->destroy(); } return $result; }