Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

inbloombr

Criação de Arquivo XML

Recommended Posts

Olá,

 

Tenho uma rádio online que lê os links e nomes das musicas através de um XML!

 

Para facilitar a inserção de novas músicas, gostaria de saber se é possível criar um wizard para alteração e edição de XML!

 

Uma página php onde o cliente preenche os campos e após confirmado gera ou altera o XML!

 

4 campos ! songpath, bild, artist e title...

 

ex..

 

<?xml version="1.0" encoding="UTF-8"?><songs>   <song path="http://www.podcast1.com.br/canais/canalxx/xxx.mp3" bild="covers/never.jpg" artist="David Amo & Julio Navas" title="DJ Set Março de 2006"/>   <song path="http://www.podcast1.com.br/canais/canalxx/xxx.mp3" bild="covers/where.jpg" artist="V.A." title="Between The Lines"/></songs>

existe como criar uma interfaçe php que faça isso??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tô querendo a mesma coisa que o amigo ai de cima, só que ele postou mais rápido que eu. :P ^_^

Eu aqui na empresa, fiz um script que gera um sitemap. Tá gerando o arquivo XML na boa utilizando DOM. O problema é que: preciso entrar dentro da tag <urlset> </urlset> pra adicionar mais tag's <url> </url>, pois ai vou fazer um select aqui do bd que tem todas as url's do site e depois um loop pra ir adicionando.

 

Então como posso entrar na tag urlset pra adicionar mais tag's url?

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei este exemplo!

 

<?//CONECTA AO BANCO DE DADOS$conn = @mysql_connect("localhost", "","") or die("ERRO NA CONEXÃO");//SELECIONA A BASE DE DADOS A SER UTILIZADA$db = @mysql_select_db("imasters", $conn) or die("ERRO NA SELEÇÃO DA BASE DE DADOS");//SQL$sql = @mysql_query("SELECT A.ID, A.NOME, A.EMAIL FROM contatos A") or die("ERRO NO SQL");//TOTAL DE LINHAS AFETADAS PELA CONSULTA$row = mysql_num_rows($sql);//VERIFICA SE A PESQUISA RETORNOU ALGUMA LINHAif($row > 0) {//ARQUIVO$arquivo = "contato.xml";//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)$ponteiro = fopen($arquivo, "w");//ESCREVE NO ARQUIVO XMLfwrite($ponteiro, "<?xml version="1.0"?> ");fwrite($ponteiro, "<agenda> ");for($i=0; $i<$row; $i++) { //PEGA OS DADOS DO SQL $id = mysql_result($sql,$i,"A.ID"); $nome = mysql_result($sql,$i,"A.NOME"); $email= mysql_result($sql,$i,"A.EMAIL"); //MONTA AS TAGS DO XML $conteudo = "<contato> "; $conteudo .= "<id>$id</id> "; $conteudo .= "<nome>$nome</nome> "; $conteudo .= "<email>$email</email> "; $conteudo .= "</contato> "; //ESCREVE NO ARQUIVO fwrite($ponteiro, $conteudo);}//FECHA FOR//FECHA A TAG AGENDAfwrite($ponteiro, "</agenda>");//FECHA O ARQUIVOfclose($ponteiro);//MENSAGEMecho "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";}//FECHA IF($row)?>

 

Este exemplo cria apartir de um banco

E através de um formulário... ?

pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php$id = $_GET["id"];$nome = $_GET["nome"];$email = $_GET["email"];/* * Onde em uma pagina, o formulario deve "chamar" este escript com o method GET * E ter 3 campos (text por exemplo) com o s nomes "id", "nome", "email" * Para o caso de ultilizar o método POST, trocar o $_GET por $_POST *///ARQUIVO$arquivo = "contato.xml";//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)$ponteiro = fopen($arquivo, "w");//ESCREVE NO ARQUIVO XMLfwrite($ponteiro, "<?xml version="1.0"?> ");fwrite($ponteiro, "<agenda> ");for($i=0; $i<$row; $i++) {//MONTA AS TAGS DO XML$conteudo = "<contato> ";$conteudo .= "<id>$id</id> ";$conteudo .= "<nome>$nome</nome> ";$conteudo .= "<email>$email</email> ";$conteudo .= "</contato> ";//ESCREVE NO ARQUIVOfwrite($ponteiro, $conteudo);}//FECHA FOR//FECHA A TAG AGENDAfwrite($ponteiro, "</agenda>");//FECHA O ARQUIVOfclose($ponteiro);//MENSAGEMecho "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";?>

 

acho que é isso ai ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
fwrite($ponteiro, "<?xml version=\"1.0\"?>");

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal...

 

mas o arquivo xml q ta gerando fica assim

 

<?xml version="1.0"?><agenda> </agenda>

 

o php tá assim!!

 

<?php$id = $_POST["id"];$nome = $_POST["nome"];$email = $_POST["email"];//ARQUIVO$arquivo = "contato.xml";//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)$ponteiro = fopen($arquivo, "w");//ESCREVE NO ARQUIVO XMLfwrite($ponteiro, "<?xml version=\"1.0\"?>");fwrite($ponteiro, "<agenda> ");for($i=0; $i<$row; $i++) {//MONTA AS TAGS DO XML$conteudo = "<contato> ";$conteudo .= "<id>$id</id> ";$conteudo .= "<nome>$nome</nome> ";$conteudo .= "<email>$email</email> ";$conteudo .= "</contato> ";//ESCREVE NO ARQUIVOfwrite($ponteiro, $conteudo);}//FECHA FOR//FECHA A TAG AGENDAfwrite($ponteiro, "</agenda>");//FECHA O ARQUIVOfclose($ponteiro);//MENSAGEMecho "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim... se der erro, escreve o erro...

se funcionar http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

<?php$id = $_POST["id"];$nome = $_POST["nome"];$email = $_POST["email"];//ARQUIVO$arquivo = "contato.xml";//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)$ponteiro = fopen($arquivo, "w");//ESCREVE NO ARQUIVO XMLfwrite($ponteiro, '<?xml version="1.0"?'.'>');fwrite($ponteiro, "<agenda> ");//MONTA AS TAGS DO XML$conteudo = "<contato> ";$conteudo .= "<id>$id</id> ";$conteudo .= "<nome>$nome</nome> ";$conteudo .= "<email>$email</email> ";$conteudo .= "</contato> ";//ESCREVE NO ARQUIVOfwrite($ponteiro, $conteudo);//FECHA A TAG AGENDAfwrite($ponteiro, "</agenda>");//FECHA O ARQUIVOfclose($ponteiro);//MENSAGEMecho "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

hha ai, beleza, é só tirar o for =)

 

<?php$id = $_POST["id"];$nome = $_POST["nome"];$email = $_POST["email"];//ARQUIVO$arquivo = "contato.xml";//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)$ponteiro = fopen($arquivo, "w");//ESCREVE NO ARQUIVO XMLfwrite($ponteiro, "<?xml version=\"1.0\"?>\n\r");fwrite($ponteiro, "   <agenda>\n\r");$conteudo = "	  <contato>\r\n";$conteudo .= "		 <id>$id</id>\n\r";$conteudo .= "		 <nome>$nome</nome>\n\r";$conteudo .= "		 <email>$email</email>\n\r";$conteudo .= "	  </contato>\n\r";//ESCREVE NO ARQUIVOfwrite($ponteiro, $conteudo);//FECHA A TAG AGENDAfwrite($ponteiro, "</agenda>");//FECHA O ARQUIVOfclose($ponteiro);//MENSAGEMecho "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é...com for n dá..

 

não ta pegando as variaveis agora!

 

<?xml version="1.0"?><agenda> <contato> <id></id> <nome></nome> <email></email> </contato> </agenda>

 

esse é meu form

 

<form id="form1" name="form1" method="post" action="teste.php">  <label>id  <input type="text" name="id" />  </label>  <p>	<label>nome	<input type="text" name="nome" />	</label>  </p>  <p>	<label>email	<input type="text" name="email" />	</label>  </p>  <p>	<label>enviar	<input type="submit" name="Submit" value="Submit" />	</label>  </p></form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

melhorando um pouco... assim escreve só uma vez

 

 

<?php$id = $_POST["id"];$nome = $_POST["nome"];$email = $_POST["email"];//ARQUIVO$arquivo = "contato.xml";//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)$ponteiro = fopen($arquivo, "w");//ESCREVE NO ARQUIVO XML$conteudo = '<?xml version="1.0"?'.'>';//ABRE A TAG AGENDA$conteudo .= "<agenda> ";//MONTA AS TAGS DO XML$conteudo .= "<contato> ";$conteudo .= "<id>$id</id> ";$conteudo .= "<nome>$nome</nome> ";$conteudo .= "<email>$email</email> ";$conteudo .= "</contato> ";//FECHA A TAG AGENDA$conteudo .= "</agenda>";//ESCREVE NO ARQUIVOfwrite($ponteiro, $conteudo);//FECHA O ARQUIVOfclose($ponteiro);//MENSAGEMecho "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";?>

Provavelmente é o formulário então, fera....

como que tá o form?

Compartilhar este post


Link para o post
Compartilhar em outros sites

hha ai, beleza, é só tirar o for =)

<?php$id = $_POST["id"];$nome = $_POST["nome"];$email = $_POST["email"];//ARQUIVO$arquivo = "contato.xml";//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)$ponteiro = fopen($arquivo, "w");//ESCREVE NO ARQUIVO XMLfwrite($ponteiro, "<?xml version=\"1.0\"?>\n\r");fwrite($ponteiro, "   <agenda>\n\r");$conteudo = "	  <contato>\r\n";$conteudo .= "		 <id>$id</id>\n\r";$conteudo .= "		 <nome>$nome</nome>\n\r";$conteudo .= "		 <email>$email</email>\n\r";$conteudo .= "	  </contato>\n\r";//ESCREVE NO ARQUIVOfwrite($ponteiro, $conteudo);//FECHA A TAG AGENDAfwrite($ponteiro, "</agenda>");//FECHA O ARQUIVOfclose($ponteiro);//MENSAGEMecho "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";?>
Amigo, se você colocar ?> juntos não fecha o seu PHP ai não, talvez seja alguma configuração, mas no meu aqui fecha....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilizando seu exemplo Thiago, ele cria quadrados fora das tags! meio anormal!

 

meu código tá o seguinte! vou repassar td novamente!

 

teste.html

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title></head><body><form id="form1" name="form1" method="post" action="teste.php">  <input name="id" type="text" value="33" />  <br />  <input name="nome" type="text" value="Andre" />	</label>  <br />  <input name="email" type="text" value="andre@andre.com" />	<br />	<input type="submit" name="Submit" value="Enviar" /></form></body></html>

teste.php

 

<?php$id = $_POST["id"];$nome = $_POST["nome"];$email = $_POST["email"];//ARQUIVO$arquivo = "contato.xml";//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)$ponteiro = fopen($arquivo, "w");//ESCREVE NO ARQUIVO XML$conteudo = '<?xml version="1.0"?'.' encoding="ISO-8859-1" >';//ABRE A TAG AGENDA$conteudo .= "<agenda> ";//MONTA AS TAGS DO XML$conteudo .= "<contato> ";$conteudo .= "<id>$id</id> ";$conteudo .= "<nome>$nome</nome> ";$conteudo .= "<email>$email</email> ";$conteudo .= "</contato> ";//FECHA A TAG AGENDA$conteudo .= "</agenda>";//ESCREVE NO ARQUIVOfwrite($ponteiro, $conteudo);//FECHA O ARQUIVOfclose($ponteiro);//MENSAGEMecho "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";?>

gerando o arquivo contato.xml sem passar as variáveis!

 

<?xml version="1.0"?>   <agenda>	  <contato>		 <id></id>		 <nome></nome>		 <email></email>	  </contato></agenda>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no teste.phpEm vez de$conteudo = '<?xml version="1.0"?'.' encoding="ISO-8859-1" >';troque por$conteudo= '<?xml version="1.0" encoding="iso-8859-1"?'.'>';e aquele seu formulário parece estar correto sem erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se a pagina indicada no action="teste.php" do form existe realmente, ou se está com outro nome...

 

Teste as variáveis na página de teste.php

 

$id = $_POST["id"];$nome = $_POST["nome"];$email = $_POST["email"];echo "id: ".$id."<BR>";echo "nome: ".$nome."<BR>";echo "email: ".$email."<BR><BR><BR>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema era no meu localhost.upei os arquivos e funcionou!voltando ao tópico!!$conteudo .= "<song path>$url</song path> ";<song path="http://www.podcast1.com.br/canais/canalxx/xxx.mp3" bild="covers/never.jpg" artist="David Amo & Julio Navas" title="DJ Set Março de 2006"/>dentro de uma tag eu tenho 4 valores! como fica a sintaxe para colocar mais valores dentro de uma mesma tag!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.