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 :

[XML] Comment écrire des instructions dans un fichier XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut [XML] Comment écrire des instructions dans un fichier XML
    Bonjour,
    Je cherche à mettre à jour un fichier xml de mon serveur pour google news.
    J'ai suivi tous les conseils de google et tout marche bien. La seule chose qui me reste c'est d'automatiser la mise à jour du fichier XML. C'est là que je bloque.

    A chaque new publié, j'aimerais écrire ce texte dans le fichier XML sur mon serveur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
          <url>
          <loc>http://www.monsite.com/news/les-hommes-de-caverne-2345.php</loc>
            <news:news>
             <news:publication_date> 2009-04-27T03:30:00Z </news:publication_date>
             <news:keywords>Santé,Style de vie,Science</news:keywords>         
          </news:news>
       </url>
    Sachant que je connais les variables URL, DATE, MOT CLEF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $url;
    $date;
    $motcle;
    D'avance je vous remercie bcp pour votre aide. Ce sera très très sympa
    Je sais que je ne sais rien

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 091
    Points : 8 194
    Points
    8 194
    Billets dans le blog
    17
    Par défaut
    Tu peux traiter ton XML avec SimpleXML et notamment SimpleXMLElement::addChild( )
    La doc : http://fr.php.net/simplexml
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup pour ta réponse.
    Cependant, je ne sais pas utiliser XML et j'avoue que le lien que tu m'as indiqué ne m'éclaire malheureusement pas. Je ne comprends rien. Je ne vois pas à quel moment le fichier xml est ouvert et comment le texte est écrit ?

    Quelqu'un peut-il me donner un exemple avec mon code SVP

    D'avance je vous remercie
    Je sais que je ne sais rien

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 091
    Points : 8 194
    Points
    8 194
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Alexandrebox Voir le message
    Je ne vois pas à quel moment le fichier xml est ouvert
    simple_xml_load_file( )

    et comment le texte est écrit ?
    SimpleXMLElement::asXML( )

    Quelqu'un peut-il me donner un exemple avec mon code SVP
    Oui, donne un extrait complet de ton XML et de ce que tu veux y insérer.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup Seb pour ton aide.
    Voici le code comple du fichier xml. Il s'agit du fichier sitemap pour google actualités. D'après ce que j'ai lu sur leur site, il faut ajouter à chaque nouvel article ce fragment de code pour l'article en question
    <url>bla, bla, bla...</url>
    le fichier s'appelle sitemap.xml
    Voici 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
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.google.com/schemas/sitemap/0.9" 
    xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
     
         <url>
          <loc>http://www.monsite.com/news/les-hommes-de-caverne-2345.php</loc>
            <news:news>
             <news:publication_date> 2009-04-27T03:30:00Z </news:publication_date>
             <news:keywords>Santé,Style de vie,Science</news:keywords>         
          </news:news>
       </url>
     
    </urlset>
    Encore merci beaucoup
    Je sais que je ne sais rien

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 091
    Points : 8 194
    Points
    8 194
    Billets dans le blog
    17
    Par défaut
    Voici un script permettant d'ajouter des éléments <url> à sitemap.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
    // Variables $url, $data, $motcle données plus haut sont valorisées
     
    $xmlUrlset = simplexml_load_file('sitemap.xml') ;
    $ns = 'http://www.google.com/schemas/sitemap-news/0.9' ;
     
    $xmlUrl = $xmlUrlset->addChild('url') ;
     
    $xmlUrl->addChild('loc', htmlspecialchars($url)) ;
     
    $xmlNews = $xmlUrl->addChild('news', '', $ns) ;
    $xmlNews->addChild('publication_date', htmlspecialchars($date), $ns) ;
    $xmlNews->addChild('keywords', htmlspecialchars($motcle), $ns) ;
     
    $xmlUrlset->asXML('sitemap.xml') ;
    N'hésite pas à consulter la doc PHP de SimpleXML, tu verras l'API est très simple à l'usage
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup.
    Ton code est vraiment cool. Je comprends. Merci bcp. Je vais mettre résolu à cette discussion et ne vais pas hésiter à consulter la documentation de xml.

    Bonne journée Seb
    Je sais que je ne sais rien

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

Discussions similaires

  1. [Débutant] comment écrire matrice (image) dans un fichier xml
    Par moha_gtr dans le forum Images
    Réponses: 2
    Dernier message: 22/02/2014, 16h19
  2. Réponses: 6
    Dernier message: 05/02/2008, 22h52
  3. Réponses: 4
    Dernier message: 07/11/2006, 14h02
  4. Comment stocker des tables dans un fichier XML ?
    Par TicTacToe dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/09/2006, 16h18
  5. Comment changer des mots dans un fichier?
    Par ptitbonum dans le forum Linux
    Réponses: 5
    Dernier message: 07/04/2004, 23h42

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