Olá Pessoal.
Agora aprenderemos um pouco sobre a manipulação de arquivos XML com PHP.
Veremos como criar e ler este tipo de arquivo que cada vez mais está presente na web e na comunicação entre sistemas e plataformas.
Nossos exemplos serão baseados na biblioteca SimpleXML
Agora aprenderemos um pouco sobre a manipulação de arquivos XML com PHP.
Veremos como criar e ler este tipo de arquivo que cada vez mais está presente na web e na comunicação entre sistemas e plataformas.
Nossos exemplos serão baseados na biblioteca SimpleXML
<?php
$string = "<?xml version=1.0 encoding=\"UTF-8\"?>
<raiz>
<linguagem>
<escola>
FALE Idiomas
</escola>
<idioma>
Madarin
<idioma>
</linguagem>
</raiz>";
# AGORA CRIAMOS NOSSO XML A PARTIR DA STRING
$xml = new SimpleXMLElement($string);
# SALVAMOS O ARQUIVO EM UM DIRETÓRIO DESEJADO E PRONTO! TEMOS NOSSO 1º XML
$xml -> saveXML('diretorio/arquivo.xml');
#----------------------------------------------------------------#
# 2. EXEMPLO SIMPLES DE CRIAÇÃO A PARTIR DE UMA CONSULTA AO BANCO
DE DADOS
# 2. EXEMPLO SIMPLES DE CRIAÇÃO A PARTIR DE UMA CONSULTA AO BANCO
DE DADOS
$host = 'localhost';
$usuario = 'root';
$senha = 'secreta';
$db = 'db_exemplos';
$sql = 'SELECT * FROM tb_biblioteca ORDER BY nome ASC';
$nrLinhas = 0;
$conexao = mysqli_connect($host, $usuario, $senha, $db);
$consulta = mysqli_query($conexao, $sql);
$nrLinhas = mysqli_num_rows($consulta);
if($nrLinhas > 0)
{
$conteudoXML= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$conteudoXML= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$conteudoXML.= "<biblioteca>\n\t";
while($registros = mysqli_fetch_array($consulta, MYSQLI_ASSOC))
{
$conteudoXML.= "<livro nome=\"" . $registros['nome'] . "\">\n\t\t";
$conteudoXML.= "<descricao>\n\t\t\t\t";
$conteudoXML.= $registros['descricao']."\n\t\t";
$conteudoXML.= "</descricao>\n\t";
$conteudoXML.= "</livro>\n";
}
$conteudoXML.= "</biblioteca>";
$xml = new SimpleXMLElement($conteudoXML);
$xml -> saveXML("diretorio/exemplo1.xml");
}
mysqli_close($conexao):
NOTA: Este exemplo e bem parecido com o primeiro, a consulta é armazenada em uma string
e depois usamos os métodos para criar o xml à partir dela.
# 3. AGORA VEREMOS A CRIAÇÃO SÓ COM MÉTODOS DA BIBLIOTECA SIMPLEXML (OO)
$conexao = new mysqli($host, $usuario, $senha, $db);
$consulta = $conexao -> query($sql);
$nrLinhas = $consulta -> num_rows;
if($nrLinhas > 0)
{
$xml= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$xml= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$xml.= "<biblioteca>\n</biblioteca>";
# NESTE MOMENTO CRIAMOS/INSTANCIAMOS O ARQUIVO NA MEMÓRIA
$conteudoXML = new SimpleXMLElement($xml);
while($registros = $consulta -> fetch_object())
{
# ADICIONAMOS O NÓ LIVRO AO CONTEÚDO DO ARQUIVO
$noLivro = $conteudoXML -> addChild("livro");
$noLivro = $conteudoXML -> addChild("livro");
# ADICIONAMOS O ATRIBUTO AO NÓ LIVRO
$noLivro -> addAttribute("nome", utf8_encode($registros -> nome));
# ADICIONAMOS O NÓ DESCRICAO AO CONTAÚDO DO NÓ LIVRO
$noLivro -> addChild("descricao", utf8_encode($registros -> descricao));
}
$conteudoXML -> saveXML("diretorio/exemplo2.xml");
}
$conexao -> close();
?>
?>
Estes pequenos exemplos de criação de arquivos xml dão uma pequena mostra do quanto o PHP está preparado para lidar com novas tecnologias e arquivos.
A geração e leitura são muito importantes para portais que exigem inúmeras consultas ao Banco de Dados e têm um nº de acessos significativo. A técnica de databaseless pode ser utilizada através de leitura e geração de arquivos xml, diminuindo assim as requisições ao Banco de Dados.
A leitura também é muito útil para armazenar informações de fontes externas à sua aplicação PHP:
retornos bancários, retornos de órgãos governamentais, etc
No próximo post aprenderemos como o PHP lida ao ler estes tipos de arquivos. Até lá...
A geração e leitura são muito importantes para portais que exigem inúmeras consultas ao Banco de Dados e têm um nº de acessos significativo. A técnica de databaseless pode ser utilizada através de leitura e geração de arquivos xml, diminuindo assim as requisições ao Banco de Dados.
A leitura também é muito útil para armazenar informações de fontes externas à sua aplicação PHP:
retornos bancários, retornos de órgãos governamentais, etc
No próximo post aprenderemos como o PHP lida ao ler estes tipos de arquivos. Até lá...
Boa Tarde, eu precisava fazer que código em vez de pegar apenas um arquivo especifico tipo suporte.xml
ResponderExcluirele pega-se as informações de um diretório especifico e me mostra-se em tela apenas as informações que
eu peça. Você poderia me ajudar ? Desde já Obrigado!
Bem, se você tem um diretório específico basta listar todos os arquivos contidos no mesmo e a cada arquivo desejado fazer um loop, mais ou menos assim:
Excluir";
while($arquivo = $diretorio -> read())
{
//Aqui voce pode criar uma condição para o arquivo que deseja exibir o conteudo
echo $arquivo;
//Sendo o arquivo desejado faça um laço percorrendo seu conteúdo
}
$diretorio -> close();
?>
Espero ter ajudado
Olá, eu estou vendo que sempre é citado em varios sites que, " A técnica de databaseless pode ser utilizada através de leitura e geração de arquivos xml, diminuindo assim as requisições ao Banco de Dados.". Mas por exemplo, tenho vários colaboradores de um site, vou em cada link fornecido por eles e faço a leitura do xml, faço a atualização dos dados banco, mas no final das contas o cliente vai fazer a pesquisa com requisição ao BD, tem alguma forma de "cortar" este caminho? Pois pela leitura do xml já evitamos que os usuários façam a inserção.
ResponderExcluir