这几天遇到一个问题,我想通过flex的httpservice组件读取xml文件中部分数据,xml文件代码如下:
  <?xml version="1.0" encoding="gb2312" ?> 
- <c>
  <code>200</code> 
  <reportid>421</reportid> 
  <labid>2</labid> 
  <labname>牛顿第二定律</labname> 
  <startdate>2010-1-13 21:54:58</startdate> 
  <submitdate>2010-1-13 21:55:20</submitdate> 
  <status>1</status> 
  <labscore>98.63762</labscore> 
  <lastscore>98.63762</lastscore> 
  <totalscore>0.0</totalscore> 
  <username>admin</username> 
- <result>
- <result>
- <data>
  <labdatas carm="102.30364580405876" spanm="10" carum="" spanum="" /> 
  <labdatas carm="102.68321954179555" spanm="10" carum="0" spanum="0" /> 
  <labrecord facta="0.8696947105212115" carm="102.68321954179555" spanm="10" carwm="0" spanwm="0" points="591">...datas here</labrecord> 
- <sheetxy id="fa">
- <sheet column1="力F" column2="加速度a">
  <data x="0" y="2" /> 
  </sheet>
  </sheetxy>
- <sheetxy id="ma">
  <sheet column1="小车质量" column2="加速度a" /> 
  </sheetxy>
  </data>- <result>
- <result>
需要读的数据是
<sheetxy id="fa">
- <sheet column1="力F" column2="加速度a">
  <data x="0" y="2" /> 
  </sheet>
  </sheetxy>
- <sheetxy id="ma">
  <sheet column1="小车质量" column2="加速度a" /> 
  </sheetxy>
这部分的数据类似于两个表
当id="fa"时,是一个表,当id="ma"时,是另一个表,我是想读取这些数据后,放在flex中list控件中。大家有没有什么好的方法介绍下哈

解决方案 »

  1.   

    解析XML,取节点数据..保存到内存....
      

  2.   

    Flex没有接触过,如楼上说.先解析xml,放到内存在,再从内存在取出来放到List中.
      

  3.   

    actionScript:
    [Bindable]
    var myXMLList:XMLList = new XMLList(xml.sheetxy.(@id='fa'));组件部分:
    <List dataProvider="{myXMLList}"/>
      

  4.   

    读取外部xml用HTTPService,
    注册result="doResult()"
    function doResult():void{
    myXMLList = new XMLList(httpServiceid.lastResult.sheetxy.(@id='fa')); 
    }
      

  5.   

    恩,我突然想到每个data有两个值,一个x值,一个y值,我要实现是的效果是
      1   2  3  4  5 
    f x1 x2 x3 x4 x5
    a y1 y2 y3 y4 y5
    x,y就是data里的两个值,而list不是只可以显示一组数据的么?
      

  6.   

    这个可以用TileList,刚才没想到,呵呵。只是还是不明白要怎么绑定,可以用两个TileList,分别绑定data中的x值,跟y值么?具体要怎么实现呢?刚开始学flex,所以问的问题都是很白目的啦,多谢大家的指教啦,(*^__^*) ……
      

  7.   

    那么你可以使用dataGrid组件
    <mx:DataGrid id="grid"
    dataProvider="{myXMLList}">
    <mx:columns>
    <mx:DataGridColumn headerText="1"
    dataField="field1"/>
    <mx:DataGridColumn headerText="2"
    dataField="field2"/>
    </mx:columns>
    </mx:DataGrid>另外var myXMLList:XMLList = new XMLList(xml.sheetxy.(@id='fa')); 
    应为var myXMLList:XMLList = new XMLList(xml.sheetxy.(@id=='fa')); 
      

  8.   

    用datagrid 就是一列一列取数据了,呵呵,不过还是谢谢你哈,我先试试哦