I'm trying to insert values into xml using php, and wanted to skip line before inserting if the file already exists so it does not overwrite what's already there. However the FILE_APPEND of file_puts_content does not work, the links I found on this subject recommend putting "
", "\ n", "\ r \ n" and PHP_EOL, however all of them have 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();