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

Langage PHP Discussion :

Génération d'un fichier XML en PHP pour Google Maps.


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Japon

    Informations forums :
    Inscription : Octobre 2010
    Messages : 64
    Points : 107
    Points
    107
    Par défaut Génération d'un fichier XML en PHP pour Google Maps.
    Bonjour,

    Je n'arrive pas à résoudre un problème en PHP en ce qui concerne la génération d'un fichier XML pour la google maps API.

    En fait j'essaie de suivre le tuto donné à cette adresse :

    lien vers le tuto google

    Tout va bien jusqu'à la génération du fichier XML.
    En fait j'emploie la méthode "Using PHP's DOM functions to output XML".
    Les autres ne marchent pas ou me donnent du vide.

    Voici le code donné par Google sur sa page :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
     
    require("phpsqlajax_dbinfo.php");
     
    // Start XML file, create parent node
     
    $dom = new DOMDocument("1.0");
    $node = $dom->createElement("markers");
    $parnode = $dom->appendChild($node);
     
    // Opens a connection to a MySQL server
     
    $connection=mysql_connect (localhost, $username, $password);
    if (!$connection) {  die('Not connected : ' . mysql_error());}
     
    // Set the active MySQL database
     
    $db_selected = mysql_select_db($database, $connection);
    if (!$db_selected) {
      die ('Can\'t use db : ' . mysql_error());
    }
     
    // Select all the rows in the markers table
     
    $query = "SELECT * FROM markers WHERE 1";
    $result = mysql_query($query);
    if (!$result) {
      die('Invalid query: ' . mysql_error());
    }
     
    header("Content-type: text/xml");
     
    // Iterate through the rows, adding XML nodes for each
     
    while ($row = @mysql_fetch_assoc($result)){
      // ADD TO XML DOCUMENT NODE
      $node = $dom->createElement("marker");
      $newnode = $parnode->appendChild($node);
      $newnode->setAttribute("name",$row['name']);
      $newnode->setAttribute("address", $row['address']);
      $newnode->setAttribute("lat", $row['lat']);
      $newnode->setAttribute("lng", $row['lng']);
      $newnode->setAttribute("type", $row['type']);
    }
     
    echo $dom->saveXML();
     
    ?>
    Vous remarquerez qu'ils utilisent MySQL, or première difficulté pour moi, le serveur que j'utilise à l'école n'a que PostGreSQL. Je ne me suis pas laissé décourager et j'ai donc modifié le code pour produire ceci :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php
     
    include("../my_function/my_function.php");
     
    // Start XML file, create parent node
     
    $dom = new DOMDocument("1.0","UTF-8");
    $node = $dom->createElement("markers");
    $parnode = $dom->appendChild($node);
     
    //print_r($dom);
     
     
    $db=db_connect_utf();
    if (!$db) {  die('Not connected : ');}
     
     
     
     
    // Select all the rows in the markers table
     
    $query = "SELECT * FROM markers";
    $result = pg_query($query);
    if (!$result) {
      die('Invalid query: ');
    }
    // Iterate through the rows, adding XML nodes for each
     // ADD TO XML DOCUMENT NODE
    /**/
     
     
     
    header("Content-type:text/xml");
    while ($row = @pg_fetch_assoc($result)){
      $node = $dom->createElement("marker");
      $newnode = $parnode->appendChild($node);
      $newnode->setAttribute("name",$row['name']);
      $newnode->setAttribute("address", $row['address']);
      $newnode->setAttribute("lat", $row['lat']);
      $newnode->setAttribute("lng", $row['lng']);
      $newnode->setAttribute("type", $row['type']);
    }
     
    echo $dom->saveXML();
     
    ?>
    Comme je suis sous des ordinateurs japonais, je vous renvoie le message d'erreur par Google Chrome, qui est en anglais, lorsque j'essaie d'acceder à la page :

    This page contains the following errors:

    error on line 2 at column 6: XML declaration allowed only at the start of the document
    Below is a rendering of the page up to the first error.


    Bon d'accord, apparemment la déclaration de XML n'est pas au début.
    Lorsque je regarde le code source, le XML apparait bien, mais la déclaration est effectivement une ligne trop bas, je vous donne un screenshot :
    par ici pour la capture

    J'ai tout essayé, on s'y est mis à 4 durant une demie-heure mais pas moyen de résoudre le problème ! Donc si des développeurs talentueux dans le coin pouvaient me donner des idées, ce serait vraiment sympa.

    Merci !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Japon

    Informations forums :
    Inscription : Octobre 2010
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    Je me reponds pour dire que j'ai trouve la solution en utilisant la methode "echo".
    Je mets le code ci-dessous :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
     
    require("../my_function/my_function.php");
    function parseToXML($htmlStr) 
     {
    $xmlStr=str_replace('<','&lt;',$htmlStr); 
    $xmlStr=str_replace('>','&gt;',$xmlStr); 
    $xmlStr=str_replace('"','&quot;',$xmlStr); 
    //$xmlStr=str_replace("'",''',$xmlStr); 
    $xmlStr=str_replace("&",'&amp;',$xmlStr); 
    return $xmlStr; 
    } 
     
    // Opens a connection to a PSQL server
    $db=db_connect_utf();
    if (!$db) {
      die('Not connected : ');
    }
     
    // Set the active MySQL database
     
     
    // Select all the rows in the markers table
    $query = "SELECT * FROM markers";
    $result = pg_query($query);
    if (!$result) {
      die('Invalid query: ');
    }
     
    header("Content-type: text/xml");
     
    // Start XML file, echo parent node
    echo '<markers>';
     
    // Iterate through the rows, printing XML nodes for each
    while ($row = @pg_fetch_assoc($result)){
      // ADD TO XML DOCUMENT NODE
      echo '<marker ';
      echo 'name="' . parseToXML($row['name']) . '" ';
      echo 'address="' . parseToXML($row['address']) . '" ';
      echo 'lat="' . $row['lat'] . '" ';
      echo 'lng="' . $row['lng']  . '" ';
      echo 'type="' . $row['type'] . '" ';
      echo '/>';
    }
     
    // End XML file
    echo '</markers>';
    ?>
    Pour la methode "DOM", cela ne marchait qu'avec IE.

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

Discussions similaires

  1. [Google Maps] Script php pour Google map hs
    Par loribac dans le forum APIs Google
    Réponses: 13
    Dernier message: 30/05/2013, 20h48
  2. Recherche scripteur PHP pour Google MAPS API
    Par emeric73 dans le forum Autres
    Réponses: 0
    Dernier message: 22/02/2010, 13h13
  3. [XML] parser un fichier xml avec php pour refaire un xml.
    Par steve3000 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/10/2008, 10h22
  4. [DOM XML] Insertion données dans fichier XML avec PHP pour Flash ?
    Par ExSter dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 10/05/2006, 11h16
  5. [SimpleXML] Comment faire pour transformer un fichier XML en PHP ?
    Par magic8392 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/09/2005, 16h22

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