PASSOS PARA CRIAR RELATORIOS COM PHP, XML E XSLTVamos ao decorrer deste texto, mostrar de forma simples e mais didatica possivel, como utilizar PHP, XML e XSLT para criar relatorios. Para isso, utilizaremos um exemplo de um relatorio simples que exibe uma lista de produtos, descricao e valor. Abordaremos o tema em cinco passos, comecando pela definicao dos dados a serem exibidos, criacao do XML, do XSL e do processador XSLT e a transformacao do XML em HTML. DEFININDO OS PASSOS / FUNCAO CREATEXML()PRIMEIRO PASSO: DEFINICAO DOS DADOS A SEREM EXIBIDOSEvidentemente, nao e o proposito deste texto ensinar a obter dados para trabalhar com PHP. Para isso, existem milhares de tutoriais que ensinam isso, alem do que, existe uma enorme diversidade de fontes desses dados, podendo ser softwares de gerenciamento de bancos de dados, arquivos de texto simples, arquivos de planilha eletronica e, ate mesmo, arquivos XML. Para fins didaticos, utilizaremos o arquivo data.php, onde definimos um array multidimensional nominado de $data. Cada item desse array, corresponde a uma linha de dados e e formado por outro array que armazena, entao, os campos: "produto", "valor" e "descricao".E importante lembrar que esta forma e apenas didatica. No mundo real, os dados provavelmente, virao de um banco de dados, tal como o MySQL ou o PostgreSQL. SEGUNDO PASSO: CRIANDO O XML NECESSARIOTendo os dados, precisaremos transformar esses dados em XML. Para isso criaremos a funcao createXML(), constante no arquivoxslt.php. Evidentemente que num caso real, provavelmente, voce utilizara a orientacao a objetos, criando uma classe para a geracao dos relatorios, com diversos metodos. Provavelmente, voce preferira, dentro da classe, desmembrar a funcao createXML() em diversos metodos mais especificos. A funcao createXML() possui dois argumentos:$data :: que recebe o array com os dados provenientes de "data.php";$xlsfile :: que recebe uma string com o caminho/nome do arquivo XSL a ser utilizado.Vamos, entao, depurar a funcao createXML() para entender as etapas necessarias para o processamento dos dados, do XML e do XSL. Mas, antes disso, precisamos explicar que todo o processamento do XML e feito atraves das funcoes de manipulacao de XML do PHP presentes na extensao DOM. Segundo o manual do PHP, a extensao DOM permite operar em documentos XML atraves da API DOM com PHP 5. (4) Tambem utilizaremos a extensao XLS do PHP, que implementa o padrao XSL, executando transformacoes XSLT usando a biblioteca libxslt. (4) Feitas essas consideracoes, vamos a depuracao do codigo, como prometido. Como nossos dados estao armazenados em um array na variavel $data, precisaremos transforma-los em XML. Isso e feito atraves da classe DOMDocument.Nas linhas 30 a 36, e criada uma instancia de um objeto DOMDocument (linha 30), configurado o objeto para remover espacos em branco extras (linha 33) e para que a saida seja bem formatada, com recuos, tabulacoes e espacos (linha 36). Depois disso, o objeto XML (ou DOMDocumento, que representa um objeto XML) esta pronto para receber nos (ou tag XML). Isso e feito nas linhas 39 a 54. Esse processo ira variar de acordo com a estrutura dos dados e demandara uma boa dose de estudo da