来自Obix的Flex XML

时间:2011-06-15 19:24:21

标签: xml flex flash-builder

使用下面的xml我试图从“真正的”name = sum元素中获取val。

我尝试的一切都不会让我超越“obj”级别(不是根“obj”级别)

我正在使用flex 4.5

  <obj href="http://10.1.151.163/obix/histories/Dashboard_ENC/WaterConsumtion/~historyRollup/" is="obix:HistoryQueryOut" xsi:schemaLocation="http://obix.org/ns/schema/1.0 /obix/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://obix.org/ns/schema/1.0">
     <list name="data" of="obix:HistoryRollupRecord">
        <obj>
          <abstime name="start" val="2011-06-13T10:00:00.000-04:00" tz="EDT"/>
          <abstime name="end" val="2011-06-13T11:00:00.000-04:00" tz="EDT"/>
          <int name="count" val="4"/>
          <real name="min" val="0.0"/>
          <real name="max" val="25.0"/>
          <real name="avg" val="14.105714559555054"/>
          <real name="sum" val="56.422858238220215"/>
       </obj>
       <obj>
         <abstime name="start" val="2011-06-13T11:00:00.000-04:00" tz="EDT"/>
         <abstime name="end" val="2011-06-13T12:00:00.000-04:00" tz="EDT"/>
         <int name="count" val="4"/>
         <real name="min" val="12.38690185546875"/>
         <real name="max" val="42.49167251586914"/>
         <real name="avg" val="29.935394763946533"/>
         <real name="sum" val="119.74157905578613"/>
       </obj>
   </list>
      <int name="count" val="2"/>
      <abstime name="start" val="2011-06-13T10:00:00.000-04:00" tz="EDT"/>
     <abstime name="end" val="2011-06-13T12:00:00.000-04:00" tz="EDT"/>
  </obj>

这是我的......

private function parseWater(ev:Event):void
{       
    var _xmlWater:XML = new XML(ev.target.data);

    trace(_xmlWater);                       
    trace(_xmlWater..obj[1].real[3].@val);  // <-- this doesn't work -- undefined 
}           

由于

2 个答案:

答案 0 :(得分:0)

我认为你需要有节点“列表”。有点看起来你刚刚写了一个拼写错误,而你运行的代码确实引用了“list”。

以下是有关如何在AS3中使用XML数据的详细说明:

http://www.kirupa.com/developer/flashcs3/using_xml_as3_pg1.htm

答案 1 :(得分:0)

尝试:

_xmlWater.list[0].obj[1].real[3].@val;