Rafael Clares


Gerar XML com PHP e XMLWriter
Setembro 29, 2009, 11:26 pm
Arquivado em: PHP, XML

Olá,
Mais um exemplo de como gerar XML com PHP5,  neste caso iremos utilizar a Classe nativa do PHP5  o XMLWriter para gerar a saída XML formatada.

Este exemplo, sem dúvidas é bem mais simples que o anterior que utiliza o DOM ou SimpleXML.

Vejamos o código:

<?
# Instancia do objeto XMLWriter
$xml = new XMLWriter;

# Cria memoria para armazenar a saida
$xml->openMemory();

# Inicia o cabeçalho do documento XML
$xml->startDocument( '1.0' , 'iso-8859-1' );

# Adiciona/Inicia um Elemento / Nó Pai <item>
$xml->startElement("item");

#  Adiciona um Nó Filho <quantidade> e valor 8
$xml->writeElement("quantidade", 8);

#  Adiciona um Nó Filho <preco> e valor 110
$xml->writeElement("preco", 110);

#  Finaliza o Nó Pai / Elemento <Item>
$xml->endElement();

#  Configura a saida do conteúdo para o formato XML
header( 'Content-type: text/xml' );

# Imprime os dados armazenados
print $xml->outputMemory(true);

# Salvando o arquivo em disco
# retorna erro se o header foi definido
# retorna erro se outputMemory já foi chamado
$file = fopen('foo.xml','w+');
fwrite($file,$xml->outputMemory(true));
fclose($file);
?>

Obs: A chamada ao método $xml->outputMemory() descarrega os dados da memória então você só consegue chama-lo uma vez, logo, para salvar o arquivo você não pode ter chamado este método ainda.

Para salvar o arquivo corretamente você deve comentar as linhas abaixo:

# header( ‘Content-type: text/xml’ );
# print $xml->outputMemory(true);

Comente as linhas abaixo para apenas exibir o XML no browser:

# $file = fopen(‘foo.xml’,'w+’);
# fwrite($file,$xml->outputMemory(true));
# fclose($file);

Referência: http://br.php.net/manual/pt_BR/book.xmlwriter.php

 

Por enquanto é isso galera, bom divertimento e até mais.


1 Comentário até o momento
Deixe um comentário

Boa camarada!

Comentário por JULIOOXX




Deixe um comentário
Linhas e parágrafos quebram automaticamente, endereços de email não serão mostrados, HTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>