Передача данных из PHP во Flash

Я пытаюсь передать некоторые основные данные из PHP во Flash. Из чтения по этой теме я понял, что лучший способ - создать XML с помощью PHP, а затем прочитать его во Flash. Я пытаюсь начать с простого, вот мой PHP-код:

<?php
    header('Content-Type: text/xml');
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
    echo "<userData>";
    echo "<firstName>John</firstName>";
    echo "<lastName>Smith</lastName>";
    echo "</userData>";
?>

А вот мой Flash-код:

var xml:XML = new XML();
var url:URLRequest = new URLRequest("data.php");
var loader:URLLoader = new URLLoader(url);
loader.addEventListener("complete", xmlLoaded);

function xmlLoaded(event:Event):void
{
    xml = XML(loader.data);
    trace("Data loaded.");
    trace (loader.data);
};

Я видел несколько руководств, в которых используется этот подход, и он работает, однако во Flash я получаю эту ошибку:

TypeError: Ошибка № 1088: Разметка в документе после корневого элемента должна быть правильно оформлена.

Может ли кто-нибудь определить, почему я получаю эту ошибку, или предоставить другой способ сделать это?


person user2382314    schedule 24.05.2013    source источник
comment
Значение правильно сформированный специально стандартизировано в XML, я предлагаю заглянуть в статью Википедии, если вы хотите понять, что означает сообщение: en.wikipedia.org/wiki/Правильный_документ   -  person hakre    schedule 24.05.2013
comment
Также, пожалуйста, проверьте все, что сделано в связанных вопросах с тем же сообщением об ошибке, и сообщите нам, что вы сделали до сих пор, из-за какого вопроса и каков был результат - по каждому. Это важно, чтобы сделать ваш вопрос видимым в контексте для других пользователей веб-сайта (также вы можете быстрее узнать о том, что происходит не так): например. Вы пробовали: XML, TypeError: Ошибка № 1088: разметка в?   -  person hakre    schedule 24.05.2013
comment
сначала попытайтесь сделать свой xml как можно более простым, одну строку вроде этой: echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?><userData/>"; и посмотрите, начнет ли он работать   -  person Ivan Chernykh    schedule 24.05.2013


Ответы (3)


Попробуйте добавить разметку ‹ data >:

<?php
    header('Content-Type: text/xml');
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
    echo "<data>";
    echo "<userData>";
    echo "<firstName>John</firstName>";
    echo "<lastName>Smith</lastName>";
    echo "</userData>";
    echo "</data>";
?>
person emilie zawadzki    schedule 24.05.2013

Я не эксперт по flash, но думаю, что следующая ссылка может вам помочь http://www.lashf.com/page/Flash_and_PHP http://forums.adobe.com/message/4301986

person Anil Gupta    schedule 24.05.2013

Совершенно очевидно, что ваш формат XML не принимается FLASH. FLASH читает очень отформатированный XML, поэтому вам нужно быть очень аккуратным в том, как вы его записываете.

Я предлагаю использовать форму класса XML php для создания вашего XML, такого как DOMDocument. Я использую этот класс в своем проекте для FLASH, и он отлично работает.

Удачи.

person Ali Albahrani    schedule 12.02.2014