2013-04-10 3 views
0

Я пытаюсь написать приложение для дроидов, которое отправляет и получает XML между приложением и веб-службой. Когда я пытаюсь запустить следующий кодXml Php Предупреждение Дополнительный контент в конце документа

$dom = new domDocument; 
$dom = simplexml_load_file('php://input'); 
$xml = simplexml_import_dom($dom); 

$messages = Messages::find_by_sql("SELECT * FROM messages WHERE reciever = '$xml->userName'"); 
$xmlString = ""; 
if($messages) 
{ 

    foreach($messages as $message) 
    { 
    $ts = strtotime($message->ts); 
$xmlString=$xmlString."<Message><sender>".$message->sender."</sender><reciever>".$message->reciever."</reciever><timestamp>"."123"."</timestamp><text>".$message->text."</text></Message>"; 
    } 
} 
else 
{ 
    //do something 
} 
$xmlReturn = new DOMDocument('1.0', 'UTF-8'); 
$xmlReturn->loadXML($xmlString); 
echo($xmlReturn->saveXML()); 
?> 

Я получаю предупреждение Дополнительный контент в конце документа.

Ошибка происходит от этой линии: $xmlReturn->loadXML($xmlString);

Я не 100% уверен, что вы можете создать документ XML, загрузив строку, но я видел подобные вещи сделаны, и если вы посмотрите here вы можете посмотрите, что он делает, что для меня выглядит как правильный XML.

ответ

1

Документ XML может иметь только один корневой элемент. Вы объединяете в себя несколько комбинаций <message>…</message>, поэтому отсутствует корневой элемент, инкапсулирующий их.

+0

Гений ... это был ответ на проблему. Ему не хватало корневого узла – ed209

Смежные вопросы