我收到以下错误:
#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数据仍然不喜欢格式化。
请帮忙。
答案 0 :(得分:1)
也许,这不会直接帮助你,但我测试了你的代码,一切正常:XML内容在调试模式下跟踪。我使用相同的AS3代码*并在我的Web服务器上提供了一个完全相同的PHP内容。
因此,我猜这个问题与显示的源代码无关,而且在于此处未显示的代码或者可能是Web服务器配置。
-
*变化: