Я использую веб-сервис weather.com, чтобы запросить текущие условия для местоположения, и анализирую текущую температуру, похоже на значок температуры и текущего состояния в моем приложении Flash. Нынешняя температура и ощущения температуры Узлы вложены в NowItems -> NowItem, а WeatherToday находится дальше в ленте. Я написал следующее в AS3:
public class Main extends MovieClip
{
public function Main()
{
var urlRequest:URLRequest = new URLRequest("WebServiceURL");
var urlLoader:URLLoader=new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onXmlLoaded);
urlLoader.load(urlRequest);
}
private function onXmlLoaded(event:Event):void
{
XML.ignoreWhitespace = true;
var urlLoader:URLLoader = event.currentTarget as URLLoader;
var resultXML:XML = XML(urlLoader.data);
trace(resultXML.NowItems.NowItem.CURRENT TEMPERATURE.Value);
trace(resultXML.NowItems.NowItem.FEELS LIKE.Value);
trace(resultXML.WeatherToday.Icon);
var lowtemp_label :TextField = new TextField();
addChild(lowtemp_label);
var hitemp_label :TextField=new TextField();
addChild(hitemp_label);
var condicon_label :TextField=new TextField();
addChild(condicon_label);
lowtemp_label.text = resultXML.minTemp;
hitemp_label.text= resultXML.maxTemp;
condicon_label.text=resultXML.icon;
}
}
Вот некоторые из XML:
<rss version="2.0" xmlns:a10="http://www.w3.org/2005/Atom">
<channel>
<title>WEATHERSCAPE</title>
<link>http://www.weatherchannel.com.au/</link>
<description>WEATHERSCAPE DATA</description>
<category>Weather</category>
<item>
<guid isPermaLink="false">18b88e0b-b53f-41a3-bdfb-0762ae440f60</guid>
<link>http://www.weatherchannel.com.au/</link>
<title>Weather</title>
<description><?xml version="1.0" encoding="utf-16"?>
<LocalWeather xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<AreaType>suburb</AreaType>
<AreaId>555</AreaId>
<AreaName>SYDNEY</AreaName>
<UTCOffset>600</UTCOffset>
<ForecastCreated>2011-04-29T17:10:25Z</ForecastCreated>
<ObservationsCreated>2011-04-29T17:00:00Z</ObservationsCreated>
<NowItems>
<NowItem>
<Label>CURRENT TEMPERATURE</Label>
<Value>16.7</Value>
<Units>°C</Units>
<Change>STEADY</Change>
</NowItem>
<NowItem>
<Label>FEELS LIKE</Label>
<Value>16.9</Value>
<Units>°C</Units>
<Change>STEADY</Change>
</NowItem>
<NowItem>
<Label>DEW POINT</Label>
<Value>16</Value>
<Units>°C</Units>
<Change>DOWN</Change>
</NowItem>
<NowItem>
<Label>HUMIDITY</Label>
<Value>96</Value>
<Units>%</Units>
</NowItem>
<NowItem>
<Label>WIND SPEED</Label>
<Value>9</Value>
<Units>km/h</Units>
<Change>STEADY</Change>
<Direction>SW</Direction>
</NowItem>
<NowItem>
<Label>WIND GUSTS</Label>
<Value>15</Value>
<Units>km/h</Units>
</NowItem>
<NowItem>
<Label>PRESSURE</Label>
<Value>1022</Value>
<Units>hPa</Units>
<Change>STEADY</Change>
</NowItem>
<NowItem>
<Label>RAIN SINCE 9AM</Label>
<Value>9</Value>
<Units>mm</Units>
<Change>N/A</Change>
</NowItem>
<NowItem>
<Label>FIRE DANGER LEVEL</Label>
<Value>UNAVAILABLE</Value>
<Units>N/A</Units>
</NowItem>
</NowItems>
<WMOID>94768</WMOID>
<SiteId>66062</SiteId>
<WeatherStation>SYDNEY</WeatherStation>
<WeatherToday>
<Icon>Fewshowers</Icon>
<FriendlyName>Few showers</FriendlyName>
<Precis>Few showers.</Precis>
<MaxTemp>22</MaxTemp>
<MinTemp>17</MinTemp>
<Units>°C</Units>
<MorningIcon>Showers</MorningIcon>
<AfternoonIcon>Fewshowers</AfternoonIcon>
<EveningIcon>Showers</EveningIcon>
<MorningPrecis>Showers</MorningPrecis>
<AfternoonPrecis>Few showers</AfternoonPrecis>
<EveningPrecis>Showers</EveningPrecis>
</WeatherToday>
Я получаю ошибки компилятора в строках, запрашивающих текущую температуру и ощущения, поскольку в них есть пробелы? Какой синтаксис я использую для ссылки на эти узлы, если у них есть пробелы? Это правильный способ ссылки на эти узлы, или есть более простые методы? Когда я ссылаюсь на узлы в тексте метки (последние 3 строки), использую ли я полностью определенный узел, как в моих операторах трассировки?
Большое спасибо !!