How to generate an XML file from a form in PHP?

2

I've made the following form:

<html>
<body>
    <form method="post" action="cadastro.php">
         Informacoes <br>
         Nome <input type="text" name="nome"> <br>
         Endereco <input type="text" name="endereco"> <br>
         <input type="submit" name="insert" value="add">
     </form>
</body>
</html>

And I wanted to know how I can do to write this to an XML file. Type:

<exemplo>
    <cadastro>
        <nome>
            Nome Sobrenome
        </nome>
        <endereco>
            Rua tal
        </endereco>
    </cadastro>
</exemplo>

Any example is welcome, I want to understand how it does but I do not find any examples right on the web, thank you.

I tested the code to get the variables from the registry and it looked like this:

<?php

$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];

if (isset($_POST['botao'])){

#versao do encoding xml
$dom = new DOMDocument("1.0", "ISO-8859-1");

#retirar os espacos em branco
$dom->preserveWhiteSpace = false;

#gerar o codigo
$dom->formatOutput = true;

#criando o nó principal (root)
$root = $dom->createElement("agenda");

#nó filho (contato)
$contato = $dom->createElement("contato");

#setanto nomes e atributos dos elementos xml (nós)
$nome = $dom->createElement("nome", $nome);
$email = $dom->createElement("email", $email);
$telefone = $dom->createElement("telefone", $telefone);

#adiciona os nós (informacaoes do contato) em contato
$contato->appendChild($nome);
$contato->appendChild($email);
$contato->appendChild($telefone);

#adiciona o nó contato em (root) agenda
$root->appendChild($contato);
$dom->appendChild($root);

# Para salvar o arquivo, descomente a linha
$dom->save("contatos.xml");

#cabeçalho da página
header("Content-Type: text/xml");
# imprime o xml na tela
print $dom->saveXML();

}

?>
    
asked by anonymous 23.11.2015 / 23:06

1 answer

2

Follow the code:

<?php
#versao do encoding xml
$dom = new DOMDocument("1.0", "ISO-8859-1");

#retirar os espacos em branco
$dom->preserveWhiteSpace = false;

#gerar o codigo
$dom->formatOutput = true;

#criando o nó principal (root)
$root = $dom->createElement("agenda");

#nó filho (contato)
$contato = $dom->createElement("contato");

#setanto nomes e atributos dos elementos xml (nós)
$nome = $dom->createElement("nome", "Rafael Clares");
$telefone = $dom->createElement("telefone", "(11) 5500-0055");
$endereco = $dom->createElement("endereco", "Av. longa n 1");

#adiciona os nós (informacaoes do contato) em contato
$contato->appendChild($nome);
$contato->appendChild($telefone);
$contato->appendChild($endereco);

#adiciona o nó contato em (root) agenda
$root->appendChild($contato);
$dom->appendChild($root);

# Para salvar o arquivo, descomente a linha
//$dom->save("contatos.xml");

#cabeçalho da página
header("Content-Type: text/xml");
# imprime o xml na tela
print $dom->saveXML();
?>

It generates the following XML:

<agenda>
<contato>
<nome>Rafael Clares</nome>
<telefone>(0xx11) 5500-0055</telefone>
<endereco>Av. Longa n 1</endereco>
</contato>
</agenda>

This example is very easy to see.

I hope I have helped.

UPDATE

Follow the fiddle with the question code, forcing if with true .

    
23.11.2015 / 23:13