Ir para conteúdo

POWERED BY:

Arquivado

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

akira2008

Adicionar, editar, remover e exibir dados no xml usando PHP

Recommended Posts

Boa Tarde pessoal do Imasters!, venho nesses dias querendo desenvolver um quiz em xml com php, senti uma dificuldade em trabalhar xml com o php, mas não posso voltar atras, tenho que continuar, estou desenvolvendo para os meus alunos algo que possam ajudar eles a estudar e se divertir. Estou disposto a fazer, só preciso saber o que devo fazer passo a passo pra que funcione.

 

1) Tenho o seguinte arquivo xml chamado teste.xml, como esta abaixo:

 

<?xml version="1.0" encoding="utf-8"?>
<perguntas>
<questao>
	<pergunta> O que o q?</pergunta>
	<resp1> N </resp1>
	<resp2> S </resp2>
	<resp3> Talvez </resp3>
	<resp4> OU </resp4>
	<respC> OK </respC>
</questao>
<questao>
	<pergunta> O que o q2?</pergunta>
	<resp1> N2 </resp1>
	<resp2> S2 </resp2>
	<resp3> Talvez2 </resp3>
	<resp4> OU 2</resp4>
	<respC> OK 2</respC>
</questao>
<questao>
	<pergunta> O que o q3?</pergunta>
	<resp1> N3 </resp1>
	<resp2> S3 </resp2>
	<resp3> Talvez3 </resp3>
	<resp4> OU3 </resp4>
	<respC> OK3 </respC>
</questao>
</perguntas>

 

 

2) Tenho uma página chamada index.php, com 4 links :

 

<a href="adicionar.php">Adicionar.php</a>

<a href="remover.php">Remover.php</a>

<a href="editar.php">Editar.php</a>

<a href="exibir.php">Exibir.php</a>

 

Eu sei como exibir os dados do arquivo xml no php, só não sei como adicionar, editar e remover dados no arquivo xml com o PHP. Peço ajuda a vocês sei que muitos aqui tem experiencia, e é um assunto que não vejo publicado em nenhum site. É só me dizer o que tem pra fazer e faço, com ajuda de voces conseguirei, já li o manual do php e outros mas nemhum deles explica com clareza essa parte.

 

aguardo ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já olhou sobre SimpleXml e DOM XML???

 

com eles você pode ler e manipular o seu XML.

 

Coloque um atributo id em cada tag question, como por exemplo <question id="1">

 

na hora de editar/excluir/adicionar, você vai pegar pelo atributo que será relacionado com o valor que você passar ao código especifico.

 

Essa é uma das maneiras de fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.php.net/manual/en/simplexmlelement.addChild.php

 

 

o exemplo#1 é exatamente o que você está pedindo

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse arquivo só cadastra um nó, quando cadastro de novo ele sobreescreva a primeira e eu nao quero só um, eu quero que ele crie varios, veja abaixo o que esta faltando pra que ele adicione varios nós.

 

<?php
$xml = simplexml_load_string('<?xml version="1.0" encoding="utf-8"?><root></root>');

$nome = $_POST["nome"];
$ano = $_POST["ano"];
$diretor = $_POST["diretor"];
$comentarios = $_POST["comentarios"];

$xml->addChild('nome',$nome);
$xml->addChild('ano',$ano);
$xml->addChild('diretor',$diretor);
$xml->addChild('comentarios',$comentarios);


echo $xml->asXML();
file_put_contents('cases.xml',$xml->asXML() );
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

kara, você tem q trabalhar do menor nó para o maior... já brincou com Javascript? conhece o método appendChild()?? é idêntico

 

você abre o XML, abre o Questions, CRIA uma question, DEFINE O ID, CRIA as perguntas e respostas.

 

ADICIONA as perguntas e respostas na Question e SOMENTE AÍ, ADICIONA a Question na QuestionS

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça pelo menos o adicionar.php pra eu saber como se faz, ai eu vejo se consigo desenrolar os demais, pode ser? blza

 

akira2008,

 

Caso precise de suporte particular consulte o Mercado iMasters

 

E caso ainda não tenha lido as regras do fórum, sugiro que as leia para sua melhor participação: Regras do Fórum, mais especificamente a regra número 5:

 

 

05ª - Post UP!

Favor não postar mensagens com o objetivo de evidenciar o tópico, tornando-o primeiro da lista de tópicos (up), tal como mensagens repetitivas e/ou que não condizem com o assunto do tópico em questão (flood).

 

Por esse motivo o seu post #2 foi excluído.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$xml = simplexml_load_string('<?xml version="1.0" encoding="utf-8"?>

 

fui fazer aqui mas esta dando erro e nao consigo.

 

Se está dando erro, poste-o aqui, não é possível te ajudar se não soubermos que erro está ocorrendo.

 

Perceba também no seu post #6 que você não está lendo o seu arquivo e sim uma string contendo um XML vazio e adicionando a esse XML o novo nó, dessa forma você estará sempre gravando apenas o ultimo nó no seu arquivo.

 

Utilize simplexml_load_file() para ler o seu arquivo, assim você adicionará mais um nó ao seu arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado pela observação sua, eu consegui adicionar varios nós :lol: . agora tem outra situação como eu devo fazer para editar a base dados xml a partir do php, nesse caso vou ter que criar um formulario php para alterar os dados xml, como vou fazer para eu editar uma determinada pergunta? alguém tem uma ideia de como eu deveria fazer.

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.