zoukankan      html  css  js  c++  java
  • Flex RIA的ArcIMS WebGIS之路(四)获取数据,解析与操作XML

    不知道什么原因,Flex到现在都没有提供直接访问数据库的功能,而WebGIS系统的后台通常是一个企业级数据库,伤透了脑筋啊,举目四望,竟然束手无策,翻遍了资料才找到的救命稻草--XML。没有办法啦,只好用学了半吊子DOM来应付数据访问问题了。如何访问数据库?通过httpRequest与Asp.net交互,Asp.Net把数据库查询的结果通过DataSet.WriteXML将XML格式的结果返回给Flash文件。幸好,DataSet生成的XML格式是固定的,不然解析就麻烦咯!怎么解析呢?Flex提供了有点奇怪的XML访问方式,当然也是兼容DOM的啦!通常需要遍历获取数据例如查询了名称后绑定到ComboBox上面怎么做呢?
    protected function SelectionChanged(e:Event):void
      {
       
       if( m_hook.Map.MapSelection != "")
       {
        m_DataSource = new XMLList(m_hook.Map.MapSelection);
        this.cbName.dataProvider = m_DataSource.Table;
        BindSubItem();
        var singleItem:XMLList = new XMLList(cbName.selectedItem.toString());
        LocateFeature(singleItem.child("OBJECTID").toString());
       }
       else
       {
        this.cbName.dataProvider = null;
        this.dgProperty.dataProvider = null;
       }
      }
    其中的m_DataSource 就是一段XML的数据啦,通过OBJECTID等子节点的名称就可以访问到数据啦。还是挺方便的。
    而遍历节点也很方便
    for(var DataNode:String in QueryResult.child(ArcXML.NodeResponse).child(ArcXML.NodeFeatures).child(ArcXML.NodeFeature))
       {
        var featrueNode:XMLList = new XMLList(QueryResult.child(ArcXML.NodeResponse).child(ArcXML.NodeFeatures).child(ArcXML.NodeFeature)[DataNode]);
        FieldID = featrueNode.child(ArcXML.NodeFields).child(ArcXML.NodeField).attribute(ArcXML.AttributeFieldName).toString();
        var FieldIDValue:String = featrueNode.child(ArcXML.NodeFields).child(ArcXML.NodeField).attribute(ArcXML.AttributeFieldValue).toString();
        valueArray.push( FieldIDValue);
        
       }
    ArcXML.*****都是ArcXML的关键字,为方便起见,定义一个ArcXML的类,将这些关键字定义成静态常量,便于统一管理。这段代码就是将ArcXML的返回结果进行解析,这是一个多层查询的例子,遍历每一层的选择集,获取数据。不用多说了吧。

  • 相关阅读:
    【转】技术人员,你拿什么来拯救你的生活一个牛人的故事
    正则表达式匹配Html标签
    WebClient读取网络数据
    [转]浮点数的存储格式
    [转].NET.GC 浅谈.net托管程序中的资源释放问题
    [转]c#利用WebClient和WebRequest获取网页源代码的比较
    bzoj1934
    1036: [ZJOI2008]树的统计Count (树链剖分模板)
    1834: [ZJOI2010]network 网络扩容 (最小费用最大流模板)
    1602: [Usaco2008 Oct]牧场行走(倍增模板)
  • 原文地址:https://www.cnblogs.com/Brune/p/622850.html
Copyright © 2011-2022 走看看