2
I am trying to insert values in xml using php, and I wanted to skip line before inserting if the file already exists so that it does not overwrite what is already there. However the FILE_APPEND of file_puts_content does not work, the links I found on this subject recommended putting "
", "\n", "r n" and PHP_EOL, but all of these present the error:
Catchable fatal error: Object of class Domelement could not be converted to string
Codes:
function addMensagem($documento, $mensagem, $cpf_origem, $nomeArquivo) {
date_default_timezone_set('America/Sao_Paulo');
if (!file_exists($nomeArquivo)) {
// criar msg
$msg = $documento->createElement("msg");
// criar nó data
$data = date('j/n/Y H:i');
$dataElm = $documento->createElement("data_envio", $data);
// criar nó origem
$cpf_origemElm = $documento->createElement("cpf_origem", $cpf_origem);
// criar nó mensagem (texto)
$mensagemElm = $documento->createElement("mensagem", $mensagem);
$msg->appendChild($dataElm);
$msg->appendChild($cpf_origemElm);
$msg->appendChild($mensagemElm);
return $msg;
} else {
// $xml = simplexml_load_file("mensagens.xml");
// criar msg
$msg = $documento->createElement("msg");
// criar nó data
$data = date('j/n/Y H:i');
$dataElm = $documento->createElement("data_envio", $data);
// criar nó origem
$cpf_origemElm = $documento->createElement("cpf_origem", $cpf_origem);
// criar nó mensagem (texto)
$mensagemElm = $documento->createElement("mensagem", $mensagem);
$msg->appendChild($dataElm);
$msg->appendChild($cpf_origemElm);
$msg->appendChild($mensagemElm);
// aqui q recomendaram colocar os negocios de pular linha
// nom $msg de baixo
file_put_contents($nomeArquivo, $msg, FILE_APPEND);
return $msg;
}
}
// versão do encoding xml
$dom = new DOMDocument("1.0", "ISO-8859-7");
// criando nó principal
$root = $dom->createElement("mensagens");
// retirar os espaços em branco
$dom->preserveWhiteSpace = false;
// gerar código ??
$dom->formatOutput = true;
$nomeArquivo = "mensagens.xml";
// utilizando a função para criar as mensagens
$msg = addMensagem($dom, "Teste2", "12345678911", $nomeArquivo);
// adicionando ao root
$root->appendChild($msg);
$dom->appendChild($root);
// salva o arquivo
$dom->save($nomeArquivo);
// mostrar
header("Content-Type: text/xml");
print $dom->saveXML();
It worked fine, thank you very much for your help!
– Leandro