Ошибка в строке 2 в столбце 1: дополнительный контент в конце документа

Когда я использую приведенный ниже код и разбираю xml локально, он отлично работает, но при загрузке того же скрипта на сервере он показывает ошибку.

Примечание. Я извлек $lng и $lat из строки запроса, и он работает нормально локально.

 $lng=$_GET['lng']; $lat=$_GET['lat']; $conn=new LoginSystem(); $conn->connect(); $dom = new DOMDocument("1.0"); $query="select catch_id,catch_details,image from mycatch where longitude='$lng' AND latitude='$lat'"; $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)){ $node = $dom->createElement("mycatch"); $node = $dom->appendChild($node); foreach ($row as $fieldname => $fieldvalue) { $child = $dom->createElement($fieldname); $child = $node->appendChild($child); $value = $dom->createTextNode($fieldvalue); $value = $child->appendChild($value); } } $conn->disconnect(); $xml_string = $dom->saveXML(); echo $xml_string; 

На сервере он выдает эту ошибку. И документ также пуст …..

Эта страница содержит следующие ошибки:
ошибка в строке 2 в столбце 1: Дополнительный контент в конце документа Ниже представлен рендеринг страницы до первой ошибки.

Solutions Collecting From Web of "Ошибка в строке 2 в столбце 1: дополнительный контент в конце документа"

Я думаю, вы создаете документ, который выглядит так:

 <mycatch> .... </mycatch> <mycatch> .... </mycatch> 

Это недействительный XML-документ, так как он содержит более одного корневого элемента. У вас должен быть один элемент верхнего уровня, как в

 <mydocument> <mycatch> .... </mycatch> <mycatch> .... </mycatch> .... </mydocument> 

Проблема связана с строкой подключения к базе данных, один из параметров функции подключения к базе данных MySQL неверен, поэтому в выводе браузера есть сообщение об ошибке. Просто щелкните на веб-странице вывода и просмотрите исходный код HTML, вы увидите строку ошибки, за которой следует правильный вывод XML. файл данных). У меня была такая же проблема, и вышеописанное решение работало отлично.

В каждом цикле набора результатов вы добавляете новый корневой элемент в документ, создавая XML-документ следующим образом:

 <?xml version="1.0"?> <mycatch>...</mycatch> <mycatch>...</mycatch> ... 

XML-документ может содержать только один корневой элемент, поэтому в нем указывается, что существует «дополнительный контент». Создайте один корневой элемент и добавьте к нему все элементы mycatch:

 $root = $dom->createElement("root"); $dom->appendChild($root); // ... while ($row = @mysql_fetch_assoc($result)){ $node = $dom->createElement("mycatch"); $root->appendChild($node); 

У вас может быть выход (возможно, вывод ошибки / отладки), который предшествует вашему вызову

 header("Content-type: text/xml"); 

Поэтому содержимое, которое доставляется в браузер, не является «xml» … вот что сообщение об ошибке пытается сказать вам (по крайней мере, это было для меня, и у меня было такое же сообщение об ошибке, которое вы описали).