У меня есть эта ошибка:URL не очень хорошо образован
XML parsing error : not well formed
Location : http://127.0.0.1/localwebsite/map-control-event-type-criteria.php?=&eP=chose&tP=pub_beer&aP[0]=eating&aT=washington
Number of line 1, Column 2 :
Исходный код кажется правильным: я получаю это:
<?xml version="1.0"?>
<markers><marker name="the name" address="the adress" lat="46.187424" lng="8.717437" id="1" town="washington"/></markers>
РНР код страницы выглядит например:
<?php
require 'inc/bootstrap.php';
require_once 'inc/db.php';
$db = app::getdatabase();
$evtpar=$_GET['eP'];
$typepar=$_GET['tP'];
$critpar=$_GET['aP'];
$townURL=$_GET['aT'];
// some php code to test the validity of URL parameters
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
$result=$db->query("SELECT name.....)->fetchall();
header("Content-type: text/xml");
$i=0;
foreach ($result as $row)
{
$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("id", $row->inf_id);
$newnode->setAttribute("town", $row->town);
$i++;
}
echo $dom->saveXML();
Как я могу узнать, откуда возникла проблема?
0 Количество строк: 1 Это значит, что проблема возникла из-за неправильного адреса или кода.
EDIT: Файлы перед выше код:
Перед прибытием в URL я должен к предыдущему коду:
File1 php:
$mapDisplay='EventCritType';
File2 included in File1:
<?php if($mapDisplay=='EventCritType'):
echo $Map->mapeventcrittypeview($town,$eventparam,$typeparam,$activityparams,$lat,$lng,13);
endif; ?>
file3 = Map Class:
public function mapeventcrittypeview($town,$eventparam,$typeparam,$activityparams,$lat,$lng,$zoom)
{
$evtparam=http_build_query(array('eP'=>$eventparam));
$tpparam=http_build_query(array('tP'=>$typeparam));
$actparam=http_build_query(array('aP'=>$activityparams));
$city=http_build_query(array('aT'=>$town));
$url="/localwebsite/map-control-event-type-criteria.php?=&$evtparam&$tpparam&$actparam&$city";
include('inc/map-script.php');
}
File4= map-script.php
script type="text/javascript">
var infoWindow = new google.maps.InfoWindow;
function load() {
var map = new google.maps.Map(
document.getElementById("map"), {
center: new google.maps.LatLng(<?= json_encode($lat); ?>, <?= json_encode($lng);?>),
zoom: <?php echo json_encode($zoom); ?>,
mapTypeId: 'roadmap'
});
downloadUrl(<?= json_encode($url); ?>, function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var id = markers[i].getAttribute("id");
var town = markers[i].getAttribute("town").toLowerCase();
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
createMarker(point, id, town, html, i, map);
}
});
}
....
</script>
File5= map-control-event-type-criteria.php
<?php
require 'inc/bootstrap.php';
require_once 'inc/db.php';
$db = app::getdatabase();
$evtpar=$_GET['eP'];
$critpar=$_GET['aP'];
$townURL=$_GET['aT'];
....
Thx @Quentin за вашу помощь. Поскольку я не совсем уверен, что понял, я редактировал свой пост с образцом того, как выглядит PHP-код. Это заголовок («Content-type: text/xml»); это должно быть первым делом в документе? – michltm
@michltm - Это должно быть в коде PHP, прежде чем вы начнете выводить XML вообще. Объявление XML - это начало ' Xml'. Удалите все пробелы перед ним. – Quentin
ok Я попытаюсь найти эти пространства и вернусь к ответу, как только я их найду. – michltm