2011-06-03 61 views
0

我收到以下錯誤:閃存犯規像我Formtted XML

#1088: The markup in the document following the root element must be well-formed 

我打電話從AS3一個PHP腳本,從網站,它回聲一個網頁抓取一些XML數據。

myLoader.load(new URLRequest("http://www.mywebsite.com/my_test/my_Weather.php")); 

解決跨域問題。

在瀏覽器中查看源時,XML:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<?xml-stylesheet href="latest_ob.xsl" type="text/xsl"?> 
<current_observation version="1.0" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://www.weather.gov/view/current_observation.xsd"> 
    <credit>NOAA's National Weather Service</credit> 
    <credit_URL>http://weather.gov/</credit_URL> 
    <image> 
     <url>http://weather.gov/images/xml_logo.gif</url> 
     <title>NOAA's National Weather Service</title> 

     <link>http://weather.gov</link> 
    </image> 
    <latitude>41.27</latitude> 
    <longitude>-80.67</longitude> 
    <observation_time>Last Updated on Jun 3 2011, 1:51 pm EDT</observation_time> 
     <observation_time_rfc822>Fri, 03 Jun 2011 13:51:00 -0400</observation_time_rfc822> 
    <weather>Mostly Cloudy</weather> 
    <temperature_string>71.0 F (21.7 C)</temperature_string> 
</current_observation> 

我注意到它是使用XSL文件的樣式在瀏覽器中的數據。 我認爲這是導致該問題:

我的PHP my_Weather.php:

<?PHP 

//ini_set("display_errors","2"); 
//ERROR_REPORTING(E_ALL); 

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

$xml_data = file_get_contents("http://www.weather.gov/xml/current_obs/KYNG.xml"); 

echo $xml_data 

?> 

最後我的動作腳本:

var myXML:XML; 
var myLoader:URLLoader = new URLLoader(); 

myLoader.load(new URLRequest("http://www.mywebsite.com/my_test/my_Weather.php")); 
myLoader.addEventListener(Event.COMPLETE, processXML); 

function processXML(e:Event):void { 
    trace("load XML"); 
    myXML = new XML(e.target.data); 
    trace(myXML); 
    show_temp(myXML); 
} 

function show_temp(myXML):void 
{ 
    temp_info.text = myXML.temp_f[0]; 
} 

stop(); 

漂亮的直線前進。但我不確定爲什麼我沒有將XML導入到Flash中。即使我用PHP去掉所有的XSL數據仍然不喜歡格式化。

請大家幫忙。

+1

要確認,當您瀏覽到http://www.mywebsite.com/my_test/my_Weather.php時,您是否看到XML? – jhocking 2011-06-03 19:20:03

+0

當您追蹤e.target.data時會發生什麼? – cwallenpoole 2011-06-03 19:21:46

+1

「http://www.weather.gov/xml/current_obs/KYNG.xml」不返回xml。 myXML = new XML(e.target.data);將無法解析它。 – 2011-06-03 19:52:49

回答

1

也許,這不會直接幫助你,但我測試了你的代碼,並且在這裏一切正常:XML內容在調試模式下被跟蹤。我使用了相同的AS3代碼*,並在我的Web服務器上提供了完全相同內容的PHP。

因此,我猜想這個問題與顯示的源代碼沒有關係,並且存在於此處未顯示的代碼或可能是Web服務器配置中。

-

*更改:

  • 改變URL以自己的Web服務器
  • 爲私有的功能(使用FlashDevelop使用Flex SDK - 也許這就是癥結所在)
  • myXML = new XML(e.target.data); - > var myXML:XML = new XML(e.target.data);
+0

一旦我將SWF放到服務器上,我就在本地進行測試。以爲我的所有權限設置正確,但顯然不是。感謝您的幫助。 – Denoteone 2011-06-06 14:08:18