我使用weather.com XML Web服务来获取预测的高温,低温和图标。 XML片段如下:
<dayf>
<lsup>5/14/11 2:21 AM Local Time</lsup>
<day d="0" t="Saturday" dt="May 14">
<hi>63</hi>
<low>48</low>
<sunr>6:39 AM</sunr>
<suns>5:04 PM</suns>
<part p="d">
<icon>32</icon>
我尝试使用以下脚本代码跟踪上述节点和属性:
XML.ignoreWhitespace = true;
var urlLoader:URLLoader = event.currentTarget as URLLoader;
var resultXML:XML = XML(urlLoader.data);
trace(resultXML.dayf.day.hi);
trace(resultXML.dayf.day.low);
trace(resultXML.dayf.day.part.attribute("p=d").icon);
lbllowtemp.text= String(resultXML.dayf.day.low);
lblhitemp.text=String(resultXML.dayf.day.hi);
uicondicon.source=String(resultXML.dayf.day.part.attribute("p=d").icon)+".png";
但是,当我在Flash应用程序中运行此脚本时,我会收到:
Error #2044: Unhandled ioError:. text=Error #2035: URL Not Found. URL: file:///C|/Documents/WeatherFLV/.png
因此,正在读取hi和low值,但属性p = d的节点部分中的图标值不起作用。
我应该如何修改我的E4X语法以获取图标节点?
非常感谢!
答案 0 :(得分:1)
属性名称为'p'
而不是'p=d'
,属性p
的值为"d"
。
因此,您希望在<part>
代码中找到包含值为p
的属性"d"
的图标节点。
.(xxxxx)
将使用给定条件过滤您的XML,此处@p
是属性
如果您只有一个具有此类值的部分,则可以执行以下操作:
resultXML.dayf.day.part.(@p=="d").icon
否则,如果您有多个值,则可以获得第一条记录:
resultXML.dayf.day.part.(@p=="d")[0].icon