IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[DOM] Fichier écrasé à chaque génération


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 50
    Par défaut [DOM] Fichier écrasé à chaque génération
    bonjour, j'utilise dom pour parser un document en xml.
    le problème est que à chaque nouvel article que je rentre, l'ancien est écrasé

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $doc = new DOMDocument('1.0', 'utf-8');
     
    $element = $doc->createElement('content','');
    $doc->appendChild($element);
     
    $element2 = $doc->createElement('article','');
    $element->appendChild($element2);
     
    $param1 = $doc->createElement('headline',$titre);
    $element2->appendChild($param1);
     
    $param2 = $doc->createElement('date',$dateCreation);
    $element2->appendChild($param2);
     
    $param3 = $doc->createElement('copy_intro','');
    $element2->appendChild($param3);
    $paramdata = $doc->createCDATASection($texte_intro);
    $param3->appendChild($paramdata);
     
    $param4 = $doc->createElement('image_thumb',"images/stories/articles_thumb/".$photo);
    $element2->appendChild($param4);
     
    $param5 = $doc->createElement('article_link','index.php?option=com_newspaper&article='.$id.'&lang=fr');
    $element2->appendChild($param5);
     
    $doc->save("../content.xml");
    je voudrais recréer un nouvel article dans <content></content>
    merci pour votre aide

    ps voici mon xml au cas où :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="utf-8"?>
    <content>
      <article>
        <headline>Le sport se la joue-t-il vert ? (2)</headline>
        <date>2009-02-03 00:00:00</date>
        <copy_intro>
        <![CDATA[Deuxième volet de notre série consacrée aux sports*et à*l’environnement. Après le football et la Formule 1, place aux sports d’hiver et aux petites balles blanches et jaunes.<br />]]>
        </copy_intro>
        <image_thumb>images/stories/articles_thumb/Sport-green.jpg</image_thumb>
        <article_link></article_link>
      </article>
    </content>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Il faut alors charger l'ancien fichier au lieu de recréer un arbre vide :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    define('IOFILE', '../content.xml');
     
    $doc = new DomDocument;
    if (is_file(IOFILE)) {
        $doc->load(IOFILE);
        $element = $doc->documentElement;
    } else {
        $element = $doc->createElement('content','');
        $doc->appendChild($element);
    }
     
    $element2 = $doc->createElement('article','');
    $element->appendChild($element2);
     
    $param1 = $doc->createElement('headline',$titre);
    $element2->appendChild($param1);
     
    $param2 = $doc->createElement('date',$dateCreation);
    $element2->appendChild($param2);
     
    $param3 = $doc->createElement('copy_intro','');
    $element2->appendChild($param3);
    $paramdata = $doc->createCDATASection($texte_intro);
    $param3->appendChild($paramdata);
     
    $param4 = $doc->createElement('image_thumb',"images/stories/articles_thumb/".$photo);
    $element2->appendChild($param4);
     
    $param5 = $doc->createElement('article_link','index.php?option=com_newspaper&amp;article='.$id.'&amp;lang=fr');
    $element2->appendChild($param5);
     
    $doc->save(IOFILE);
    (non testé)


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 50
    Par défaut
    merci beaucoup jules ca marche enfin presque j'ai ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: DOMDocument::load() [domdocument.load]: EntityRef: expecting ';' in file:///C:/xampp/htdocs/ecofaubourgs/content.xml, line: 2 in C:\xampp\htdocs\ecofaubourgs\administrator\components\com_newspaper\models\newspaper.php on line 283
     
    Fatal error: Call to a member function appendChild() on a non-object in C:\xampp\htdocs\ecofaubourgs\administrator\components\com_newspaper\models\newspaper.php on line 291

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Mais ça correspond à quoi ces messages d'erreur ?

    Ici par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $param5 = $doc->createElement('article_link','index.php?option=com_newspaper&article='.$id.'&amp;lang=fr');
    Le & précédent le paramètre article est censé être &amp;. Il y a visiblement une autre erreur de ce genre dans votre code.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 50
    Par défaut
    en fait quand g posté j'ai retiré une portion de la ligne par mesure de securité

    voila la ligne entiere :

    $param5 =$doc->createElement('article_link','index.php?option=com_newspaper&amp;view=newspaper&amp;Itemid=9&amp;article='.$id.'&amp;lang=fr');

    ce qui est bizarre c'est que le code marchais avant...

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Pouvez-vous nous donner la ligne 2 du fichier XML généré et la ligne 291 de votre script ? Bien que la dernière pourrait être éliminée en résolvant la première.

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/02/2009, 15h57
  2. Fichier xsd et génération des fichiers java
    Par Llaur76 dans le forum Services Web
    Réponses: 2
    Dernier message: 09/08/2007, 16h29
  3. [XML][DOM] fichier xml thailandais
    Par tigrou2405 dans le forum APIs
    Réponses: 3
    Dernier message: 13/10/2006, 15h36
  4. Réponses: 11
    Dernier message: 01/03/2006, 10h32
  5. récupérer fichier écrasé
    Par alainpeniche dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 10/10/2005, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo