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] écrire dans un xml


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [DOM] écrire dans un xml
    Bonjour,
    Tout d'abord, désolé si je ne suis pas dans le bon forum, car ma recherche concerne php et xml (dois-je doubler le message ?)
    Je viens de découvrir la Galerie vidéo d'Adobe
    Elle fonctionne parfaitement.
    J'aimerai pouvoir insérer des vidéos avec tous les tags sans passer par l'édition du xml mais via un formulaire (php).
    Voici un morceau du code xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <videos>
    <video preview="vidéo_thumb1.flv" flv="vidéo1.flv" filter2="r0" filter1="i0">
    <title><![CDATA[titre]]></title>
    <description><![CDATA[commentaire]]></description>
    <moreInfo url="http://monblog.com/"><![CDATA[Voir le blog...]]></moreInfo>
    </video>
    </videos>
    Je suis, comme vous l'avez surement deviné, débutant et je ne demande pas forcément le code de la solution mais des pistes pour avancer.
    Je suis prêt à apprendre !
    En fouinant sur la toile, j'ai entendu parler du simplexml qui semble avoir ses limites et de DOM qui a changé depuis php5...

    Merci pour toute piste qui me fera avancer dans mes recherches.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Est-ce que les informations concernant tes vidéos sont stockés dans une base de données ?
    (titre, taille, chemin...)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Non, tout est stocké sous la forme xml.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Oui tu peux utiliser Simplexml :

    1 - Tu dois charger ton fichier XML
    $xml = new SimpleXMLElement($xmlstr);

    2 - Ajouter les vidéos
    $video = $xml->addChild('video');
    $video->addChild('title');
    $video->addChild('description');
    ...

    3 - Transformer ton objet XML en text pour ensuite l'enregistrer
    $xml->asXML()

    Regarde API
    http://uk3.php.net/manual/fr/simplexml.examples.php

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour la réponse.
    J'avais en effet déjà bien tenté d'étudier cette page avant...
    en reprenant les exemples voici ce que j'obtiens :
    le xml :
    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
     
    <movies>
    <movie>
    <title>PHP: Behind the Parser</title>
    <characters>
    <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
    </character>
    <character>
    <name>Mr. Coder</name>
    <actor>El ActÓr</actor>
    </character>
    </characters>
    <plot>
    So, this language. It's like, a programming language. Or is it a
    scripting language? All is revealed in this thrilling horror spoof
    of a documentary.
    </plot>
    <great-lines>
    <line>PHP solves all my web problems</line>
    </great-lines>
    <rating type="thumbs">7</rating>
    <rating type="stars">5</rating>
    </movie>
    </movies>
    le php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $videos = simplexml_load_file('test.xml');
    $character = $videos->movie[0]->characters->addChild('character');
    $character->addChild('name', 'Mr. Parser');
    $character->addChild('actor', 'John Doe');
    $rating = $videos->movie[0]->addChild('rating', 'PG');
    $rating->addAttribute('type', 'mpaa');
    $videos->formatOutput = TRUE;
    echo $videos->asXML();
    $videos->saveXML();
    ?>
    Ca va bien chercher les infos, ça ajoute même les nouvelles données à l'écran, mais ça ne s'enregistre pas sur le xml.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    J'avais oublié le nom de mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $videos->asXML('test.xml');

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Allez, cadeau, pour les débutants comme moi, je vous offre le code complet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>Untitled Page</title>
    </head>
    <body>
    <form method="POST" action="test.php" name="monform">
    Nom : <input type="text" name="nom"><br />
    Acteur : <input type="text" name="acteur"><br />
    <input type="submit" value="Envoyer">
    </form>
    </body>
    </html>
    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
    27
    28
    29
    30
     
    <?xml version="1.0"?>
    <movies>
    <movie>
    <title>PHP: Behind the Parser</title>
    <characters>
    <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
    </character>
    <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
    </character>
    <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
    </character>
    <plot>
    So, this language. It's like, a programming language. Or is it a
    scripting language? All is revealed in this thrilling horror spoof
    of a documentary.
    </plot>
    <great-lines>
    <line>PHP solves all my web problems</line>
    </great-lines>
    <rating type="thumbs">7</rating>
    <rating type="stars">5</rating>
    <rating type="mpaa">PG</rating><rating type="mpaa">PG</rating></movie>
    </movies>
    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
     
    <?php
    $formNom = $_POST['nom'];
    $formacteur = $_POST['acteur'];
    if(!empty($formPrenom) && !empty($formNom) ){
    $videos = simplexml_load_file('test.xml');
    $character = $videos->movie[0]->characters->addChild('character');
    $character->addChild('name', $formNom);
    $character->addChild('actor', $formacteur);
    $videos->formatOutput = TRUE;
    echo $videos->asXML('test.xml');
    $videos->saveXML();
    }
    else{
    echo 'merci de remplir les champs nom, acteur';
    }
    ?>
    Heuu.. Par contre, cette ligne ne sert à rien ?
    Ca fonction avec DOM n'est-ce pas ?
    $videos->formatOutput = TRUE;
    Comment mettre en forme.

  8. #8
    Expert éminent sénior

    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
    Points : 17 777
    Points
    17 777
    Par défaut
    Comment arrivez-vous à utiliser des propriétés et méthodes issues de l'extension DOM avec SimpleXML (sans réaliser le passage de l'un à l'autre, j'entends, puisque chacune d'elles prévoit une telle fonction) ?

    Je pense surtout à :
    Et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $videos->formatOutput = TRUE;

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    En effet, ces deux lignes ne servent à rien (cf mon dernier message).
    Je n'ai pas trouvé l'équivalent en simpleXML...

  10. #10
    Expert éminent sénior

    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
    Points : 17 777
    Points
    17 777
    Par défaut
    Les options de formatage n'existe pas, du moins à ma connaissance, au niveau de l'extension SimpleXML.

    Et l'équivalent de la méthode saveXML est asXML mais sans paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $videos->asXML('test.xml'); // Ecriture dans un fichier
     
    // ou
     
    echo $videos->asXML(); // Affichage à l'écran (il faudra alors indiquer au navigateur les entêtes adéquates ou alors utiliser des fonctions comme htmlentities pour réellement voir le document)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] écrire dans fichier xml avec PHP5
    Par devil2005 dans le forum Bibliothèques et frameworks
    Réponses: 16
    Dernier message: 10/06/2008, 18h54
  2. [DOM] Ecrire dans mon XML avec du PHP
    Par PurpleDoll dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 15/10/2007, 14h06
  3. [FLASH MX2004] écrire dans un XML par PHP
    Par morgiane dans le forum Flash
    Réponses: 2
    Dernier message: 14/11/2006, 11h02
  4. DOM - naviguer dans un XML en javascript
    Par hpfx dans le forum Général JavaScript
    Réponses: 36
    Dernier message: 08/11/2005, 22h43
  5. [XML] Comment écrire dans un xml??
    Par ffmlgraphics dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/07/2005, 10h10

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