2013-03-27 2 views
0

Я следую этот учебник от Google для карт Google:Ошибка при создании XML из базы данных MySQL с PHP

https://developers.google.com/maps/articles/phpsqlajax_v3?hl=es

я отформатирован мой код, как так:

echo '<markers>'; 

// Iterate through the rows, adding XML nodes for each 
for($i = 0; $i< $breweryNum; $i++){ 

    echo '<marker '; 
    echo 'name="' . parseToXML($row['beerBrewery']) . '" '; 
    echo 'lat="' . $row['lat'] . '" '; 
    echo 'lng="' . $row['longi'] . '" '; 
    echo '/>'; 


} 

// End XML file 
echo '</markers>'; 

Но когда я бегу php-файл для проверки моего xml, я получаю это:

XML Parsing Error: not well-formed 
Location: http://beerportfolio.com/getMapMarkers.php 
Line Number 1, Column 18:<markers><marker <br /> 
-----------------^ 

ответ

2

Вы используете nl2br или некоторые для вывода итоговой строки?

Это сообщение об ошибке, после «<markers><marker» выводит тег «<br />», но здесь должно быть ваше «имя». Во всяком случае, вы можете использовать следующий код не выводятся неправильные вещи:

$out = '<markers>'; 
for($i = 0; $i< $breweryNum; $i++){ 

    $out .= '<marker '; 
    $out .= 'name="' . parseToXML($row['beerBrewery']) . '" '; 
    $out .= 'lat="' . $row['lat'] . '" '; 
    $out .= 'lng="' . $row['longi'] . '" '; 
    $out .= '/>'; 

} 
$out .= '</markers>'; 
+0

Попробовал ваш код, и теперь я получаю эту ошибку: XML Ошибка анализа: элемент не найден Местоположение: http://beerportfolio.com/getMapMarkers.php Номер строки 1, колонка 1: ^ Когда я использую этот код: $ out = ''; // Итерировать по строкам, добавляя XML-узлы для каждого $ out = ''; for ($ i = 0; $ i <$ breweryNum; $ i ++) { $ out. = ' Mike

+0

Вы, вероятно, забудете эхом $ out; –

+0

Кроме того, я думаю, вам нужно предоставить больше кода. Вы итерацию по $ breweryNum но выводит данные из $ строки –

0

Прежде всего, XML-файлы часто начинаются с их типом декларации. Это не обязательно, но полезно (т. Е. <?xml version="1.0" encoding="UTF-8" ?>)

У вас, кажется, есть <br />, выводящийся внутри вашего xml. Вы можете найти его проще, а не делать что-то вроде

$strOutput = '<markers>'; 

А потом

$strOutput .= '<marker name="' . parseToXML($row['beerBrewery']) . '" lat="' . $row['lat'] . '" lng="' . $row['longi'] . '" />'; 

И перекрывая с

$strOutput = '</markers>'; 
echo $strOutput; 
Смежные вопросы