/** * Saída XML-padrão (campos normalizados, tags e atributos padronizados). * Traduz a saída do método asStdXML() para quase que um hSJATS, em XHTML. * @param $MODO string 'dom' ou 'xml', designa o tipo de retorno. * @param $xmlDom DOMDocument, reusa a saida de asStdXML('dom'). */ function asStdHtml($MODO = 'xml', $xmlDom = NULL, $allFlor = true, $dayFilter = '') { if ($MODO == 'dom') { die("ERRO3844: modo DOM desativado."); } if ($xmlDom === NULL) { $xmlDom = $this->asStdXML('dom', $dayFilter); } $XSLfile = $dayFilter ? 'resumosS1_toHtmlF1day' : 'resumosS1_toHtmlF2all'; $xmlDom = transformToDom("tools/xsl/{$XSLfile}.xsl", $xmlDom); // transformId_ToDom($XSL,$xmlDom); $xmlDom->encoding = 'UTF-8'; // importante para saveXML nao usar entidades. if ($MODO == 'xml') { // GAMBI1: com o XSLT transformando   em branco comum, foi preciso gambiarra! ver ♣. // GAMBI2: o certo era percorrer elementos e alterar textos por DOM... string XML mais facil. $xml = $xmlDom->saveXML(); if ($allFlor) { $xml = str_replace('♣', ' ', $xml); } else { // evita risco de remover flor que realmente era flor, verifica apenas entre-nomes. $xml = preg_replace('/(?<=\\p{L})♣(?=\\p{L})/us', ' ', $xml); } return $xml; } else { $xmlDom; } }
$isXML = $cmd == 'xml' || $cmd == 'finalXml' || $cmd == 'raw'; $isRELAT = substr($cmd, 0, 5) == 'relat'; $isMultiSec = isset($io_options['multisec']); $showDomWarnings = isset($io_options['warnings']); $file = 'php://stdin'; if (isset($io_options['tpl1'])) { // cmd tpl1 $xml = csv2xmlByHead(isset($io_options['in']) ? $io_options['in'] : $file, 'EVENTO', 1); $xml = XML_HEADER1 . str_replace('<br>', '<br/>', $xml); //die($xml); if (isset($io_options['xsltFile'])) { $xsl2 = $io_options['xsltFile']; $xsl1 = str_replace('.xsl', '_pre.xsl', $xsl2); $sdoc = new SimpleXMLElement($xml); /// GAMBI pelo bug de XSLT com xsl_getCsvRow() $sdoc = transformToDom($xsl1, $sdoc); $tmp = $sdoc->saveXML(); $tmp = preg_replace_callback('#<DIA id="([^"]+)">#s', function ($m) { return $m[0] . "<infoGrupo>" . gambi_getCsvRow('programacaoGrupoDia', $m[1]) . "</infoGrupo>"; }, $tmp); $sdoc = new SimpleXMLElement($tmp); $xml = transformToXML($xsl2, $sdoc); } die("{$xml}\n"); } elseif (isset($io_options['convCsv'])) { // cmd convCsv convCsv($io_options['in']); die("\n"); } elseif (isset($io_options['in'])) { // demais cmd's $file = $io_options['in'];