【问题标题】:How to Structure E4X Syntax to handle Attributes?如何构造 E4X 语法来处理属性?
【发布时间】:2011-05-13 17:52:32
【问题描述】:

我正在使用weather.com XML Web 服务来获取预报高温、低温和图标。 XML sn-p如下:

<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> 

我正在尝试使用以下脚本 sn-p 跟踪上述节点和属性:

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

因此,正在读取高值和低值,但节点部分中具有属性 p=d 的图标值不起作用。

我应该如何修改我的 E4X 语法来获取图标节点?

非常感谢!

【问题讨论】:

    标签: actionscript-3 e4x


    【解决方案1】:

    属性名称是'p'而不是'p=d',属性p的值是"d"。 因此,您希望在 &lt;part&gt; 标记中找到具有属性 p 且值为 "d" 的图标节点。

    .(xxxxx) 将根据给定条件过滤您的 XML,这里 @p 是属性

    如果你只有一个具有这样值的部分,你可以这样做:

    resultXML.dayf.day.part.(@p=="d").icon
    

    否则,如果你有多个值,你可以获得第一条记录:

    resultXML.dayf.day.part.(@p=="d")[0].icon
    

    【讨论】:

      猜你喜欢
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      相关资源
      最近更新 更多