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.
Edição feita por: DOIDIM, 26/01/2010, 11:14.










