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] utilisation du xml et php


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Points : 167
    Points
    167
    Par défaut [XML] utilisation du xml et php
    Bonjour je veux créer une fonction qui retourne une chaîne de caractère contenant du xml mais je ne vois pas du tout comment le faire voici le code dont je me sert
    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
    function getXml()
    	{
    	       // chaine à retourner devant contenir mon xml
    	       String chaineXml="";
    			echo "<?xml version=\"1.0\"?>\n";
    			echo "<exemple>\n";
     
    			//on connecte a la BDD
    			$dbhost="localhost";
    			$dbuser="gael";
    			$dbpass="donat ";
     
    			$dblink=mysql_connect($dbhost,$dbuser,$dbpass);
    			mysql_select_db("gael",$dblink);
     
    			//on lance la requete
    			$query = "SELECT * FROM temp";
    			$result = mysql_query($query,$dblink) or die (mysql_error($dblink));
     
    			//On boucle sur le resultat
    			while ($row = mysql_fetch_array($result, MYSQL_NUM))
    			{
    				echo "<donnee>" . $row[0] . "</donnee>\n";
    			}
    			echo "</exemple>\n";
     
    	       return chaineXml;
    	}
    comment concaténer le xml dans chaineXml avant de la retourner?
    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    Tu veux absolument retourner un chaine xml? Pas plutot un créer un .xml puis le lire par la suite au lieu de lire une chaine?

  3. #3
    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 778
    Points
    17 778
    Par défaut
    +1 pour l'utilisation d'une API XML. En procédant autrement rien ne vous garantit que le XML est valide, plutôt gênant pour ceux qui le lisent ensuite ...
    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
    function getXml() {
        $dom = new DomDocument;
        $dom->formatOutput = TRUE;
     
        $dom->appendChild($dom->createElement('exemple'));
     
        $dbhost = 'localhost';
        $dbuser = 'gael';
        $dbpass = 'donat';
     
        $dblink = mysql_connect($dbhost, $dbuser, $dbpass);
        mysql_select_db('gael', $dblink);
     
        $result = mysql_query('SELECT * FROM temp', $dblink) or die (mysql_error($dblink));
     
        while ($row = mysql_fetch_row($result)) {
            $dom->documentElement->appendChild($dom->createElement('donnee', $row[0])); // Suppose les données lues de la table encodées en UTF-8
        }
     
        return $dom->saveXML();
    }
    Bref, pour répondre à la question, concaténer n'est pas difficile :
    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
    function getXml()
    {
        // chaine à retourner devant contenir mon xml
        $chaineXML = "<?xml version=\"1.0\"?>\n";
        $chaineXML .= "<exemple>\n";
     
        //on connecte a la BDD
        $dbhost="localhost";
        $dbuser="gael";
        $dbpass="donat ";
     
        $dblink=mysql_connect($dbhost,$dbuser,$dbpass);
        mysql_select_db("gael",$dblink);
     
        //on lance la requete
        $query = "SELECT * FROM temp";
        $result = mysql_query($query,$dblink) or die (mysql_error($dblink));
     
        //On boucle sur le resultat
        while ($row = mysql_fetch_array($result, MYSQL_NUM))
        {
            $chaineXML .= "<donnee>" . $row[0] . "</donnee>\n";
        }
        $chaineXML .= "</exemple>\n";
     
        return $chaineXml;
    }
    Sinon on pourrait aussi utiliser la bufferisation :
    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
    function getXml()
    {
        ob_start();
        echo "<?xml version=\"1.0\"?>\n";
        echo "<exemple>\n";
     
        //on connecte a la BDD
        $dbhost="localhost";
        $dbuser="gael";
        $dbpass="donat ";
     
        $dblink=mysql_connect($dbhost,$dbuser,$dbpass);
        mysql_select_db("gael",$dblink);
     
        //on lance la requete
        $query = "SELECT * FROM temp";
        $result = mysql_query($query,$dblink) or die (mysql_error($dblink));
     
        //On boucle sur le resultat
        while ($row = mysql_fetch_array($result, MYSQL_NUM))
        {
            echo "<donnee>" . $row[0] . "</donnee>\n";
        }
        echo "</exemple>\n";
     
        return ob_get_flush();
    }
    (non testés)

  4. #4
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    521
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Points : 167
    Points
    167
    Par défaut
    Bon, je crois que je vais opter pour un .xml
    Merci en tout cas.

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

Discussions similaires

  1. [XML] Utilisation de SAX avec php
    Par thomas.r dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 09/09/2008, 17h07
  2. [XSLT] Utilisation de XML avec PHP dans le cadre d'un site
    Par nicolas66 dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 06/11/2005, 22h39
  3. [XSLT] XML et PHP
    Par Dam'$ dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 05/08/2004, 15h14
  4. [XML et PHP]
    Par Mister Nono dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 22/03/2004, 13h57
  5. XML + XSL + PHP
    Par ZzZerf dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/03/2003, 15h54

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