Write XML problème

Fermé
sitschner - 12 déc. 2007 à 10:41
 lou - 4 mars 2008 à 12:12
Bonjour,
J4ai un petit soucis au niveau de l'édition d'un fichier XML
J'utilise une libraire KXPARSE pour manipuler mes fichiers xml via php.
Sur un de mes fichiers xml, j'ai un problème pour l'edition du fichier
Toutes les fonctions sont ok jusqu'a un certain nombre d'entrée, ou la plus rien ne s'enregistre

je pense qu'il y a un bug avec le fread fopen ou fwrite qui doit appliquer une limite

dans ma librairie j'ai identifié 2 lignes qui peuvent poser problème :
function save($file=false) {

    if ($file===false) {
     $file=$this->file;
    }

     if ($file===false) {
      die("Error: Kxparse: save: the file argument isn't optional, since no file is currently loaded");
     }

    $my_file=fopen($file,"wb");
    $my_status=fwrite($my_file,$this->xml);
    fclose($my_file);
    if($my_status!=-1) {
        return true;
    } else {
        return false;
    }
}



et

function kxparse($xmlfile=false) {
    if($xmlfile!==false) {

        $file=fopen($xmlfile,"r");

        if(!$file) {
            die("Error: Kxparse: Initiating: unable to open file ".$xmlfile);
        }

        while(!feof($file)) {
            $this->xml.=fread($file,8096);
        }

        fclose($file);
    }

    $this->file=$xmlfile;
    $this->reset_ops();
}


Merci d'avance
A voir également:

2 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
12 déc. 2007 à 13:45
Je ne vois pas d'erreur particulière dans le code que tu as donné.
Mais il me semble avoir déjà vu d'autre personnes ayant des problème similaire pour les gros fichiers. Non seulement il y a un problème de performance à faire comme ca, mais en plus il y a peut etre problème de limitation.
Je te conseille d'utiliser DOM pour parser tes fichiers XML.
Si tu n'en as jamais fait, regarde sur cette page (et d'autre via google en tapant les mots PHP DOM XML) :
https://eusebius.developpez.com/php5dom/

Bon courage.
0
oui mais si je change de librairie je vais devoir recodder l'ensemble de mon CMS ca va me prendre des heures :-(
Merci quand meme
0
J'ai le même problème en python.
La solution, c'est de faire un "close" du fichier xml après avoir tout écrit.
Ca force l'os à purger ses buffers.
0