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 :
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
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(); ?>
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 :
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(); ?>
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 !
Partager