Ir para o conteúdo
pouic

Editar conteúdo de um XML

Mensagens Recomendadas

pouic    0
pouic

Tenho um xml que deverá ser actualizado a partir de um php que recebe por parâmetro o valor que deve colocar no XML :P

Parece um pouco confuso mas é simples...

Não estou é a conseguir guardar a informação no XML

//recebe o valor por parâmetro
$password = $_GET['pwd'];

//Abre o ficheiro em disco
$xml = simplexml_load_file('conf.xml');

$result = $xml->xpath('/pwd');

$result[0] -> $password;

$xml->asXML('conf.xml');

Depois disto o ficheiro fica com o valor antigo e não com o valor que queria inserir

formato do ficheiro xml

<?xml version="1.0" encoding="utf-8"?>
<pwd>password_codificada</pwd>

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
cyclop    0
cyclop

Não era melhor usares dom? por exemplo:

$sPassword = $_GET['pwd'];
$oXml = new DOMDocument('1.0', 'UTF-8');
$oPasswordElement = $oXml->createElement('pwd', $sPassword);
$oXml->appendChild($oPasswordElement);
file_put_contents('config.xml', $oXml->saveXML());

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
djthyrax    11
djthyrax

Usar o DOMDocument ou o SimpleXML, a m*rda é a mesma, só muda o cheiro (não é bem assim, mas pronto).

Sem experimentar, em vez de $result[0] -> $password; faz $result[0] = $password;.

Btw, se esse XPath não funcionar, usa //pwd.

Depois marca o tópico como resolvido B)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
cyclop    0
cyclop

Usar o DOMDocument ou o SimpleXML, a m*rda é a mesma, só muda o cheiro (não é bem assim, mas pronto).

Sem experimentar, em vez de $result[0] -> $password; faz $result[0] = $password;.

Btw, se esse XPath não funcionar, usa //pwd.

Depois marca o tópico como resolvido ;)

djthyrax Discordo, (NOTA: vou dar a minha opinião pessoal e vale o que vale...) O simpleXML é bom quando se trata de leitura de dados, facilidade na transformação para um objecto, no entanto, é um pouco limitado/puxado quando se fala de manipulação e criação em si

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pouic    0
pouic

Não era melhor usares dom? por exemplo:

$sPassword = $_GET['pwd'];
$oXml = new DOMDocument('1.0', 'UTF-8');
$oPasswordElement = $oXml->createElement('pwd', $sPassword);
$oXml->appendChild($oPasswordElement);
file_put_contents('config.xml', $oXml->saveXML());

Depois de testar confirma-se o sucesso ;) obrigado.

O método que o djthyrax sugeriu não funcionou.... Mas obrigado na mesma.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade