Sou iniciante ai em php e já li a documentação php procurando entender como fazer atualização de xml e também procurei pela internet várias vezes, durante muito tempo antes de vir postar num fórum, procurei aqui no fórum e em outros também, mas só achei como fazer a leitura ou criar um arquivo xml.
Meu problema é o seguinte, estou querendo atualizar um arquivo xml, incluir um novo valor, por exemplo, para teste fiz uma função para gravar erros, em arquivos xml.
exemplo de arquivo:
<?xml version="1.0" encoding="ISO-8859-1"?> <Erros> <valor> <file>file</file> <line>line</line> <trace>trace</trace> <date>date</date> <code>code</code> <message>message</message> </valor> </Erros>
e gostaria de fazer uma forma do php incluir um valor no xml.
Assim:
<?xml version="1.0" encoding="ISO-8859-1"?> <Erros> <valor> <file>file</file> <line>line</line> <trace>trace</trace> <date>date</date> <code>code</code> <message>message</message> </valor> <valor> <file>file</file> <line>line</line> <trace>trace</trace> <date>date</date> <code>code</code> <message>message</message> </valor> </Erros>
fiz essa função para poder incluir o valor no xml mas não está incluindo corretamente.
function writeErroXML($file,$line,$trace,$date,$code,$message){ $fileName = $_SERVER['DOCUMENT_ROOT'] . "/Log/" . date("d-m-Y") . ".xml"; if(file_exists($fileName)){ $xml = simplexml_load_file($fileName); $xml->addChild('valor'); $xml->valor->addChild('file',$file); $xml->valor->addChild('line',$line); $xml->valor->addChild('trace',$trace); $xml->valor->addChild('date',$date); $xml->valor->addChild('code',$code); $xml->valor->addChild('message',$message); $fl = fopen($fileName, "a"); if(fwrite($fl,$xml->asXML())){ fclose($fl); return true; } else{ return false; } } else{ $xml = simplexml_load_string('<?xml version="1.0" encoding="ISO-8859-1"?><Error></Error>'); $xml->addChild('valor'); $xml->valor->addChild('file',$file); $xml->valor->addChild('line',$line); $xml->valor->addChild('trace',$trace); $xml->valor->addChild('date',$date); $xml->valor->addChild('code',$code); $xml->valor->addChild('message',$message); $fl = fopen($fileName,"a"); if(fwrite($fl,$xml->asXML())){ fclose($fl); return true; } else{ return false; } } }
mas a função não está gravando corretamente, se alguém puder me auxiliar, ou me mandar um link de um exemplo de atualização, eu agradeço.
A gravação e leitura não tenho problema é só mesmo a atualização, pois preciso dessa atualização pois irei gravar algumas configurações no do site que estou trabalhando em xml, para aproveitar o espaço da hospedagem.
vlw galera, fico aguardando.