ArcGIS Flex API 中的 Flex 技术(四)--XML 解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:
XML已经成为一种数据传输标准,解析XML是现在任何一门语言的基本功能,解析XML需要先了解XML的组成结构、遍历方式,可以先在互联网搜索。使用ArcGIS Flex API去解析XML的一个主要场景是在"回调"阶段,Demo "Reading GeoRSS feeds"中的GeoRSSUtil.as包含了一些基本应用方法。

复制代码
Code
package com.esri.ags.samples
{

import com.esri.ags.geometry.Geometry;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.geometry.Polygon;

import mx.utils.StringUtil;
    
public class GeoRSSUtil
{
    private static const GEORSS : Namespace 
= Namespaces.GEORSS_NS;
    private static const GEOWGS : Namespace 
= Namespaces.GEOWGS_NS;
    private static const GEO : Namespace 
= Namespaces.GEO_NS;
    private static const GML : Namespace 
= Namespaces.GML_NS;
     
    public 
function GeoRSSUtil(singletonEnforcer:SingletonEnforcer)
    {
    }

    public static 
function toGeometry( x : XML ) : Geometry
    {
        const geoLat : String 
= String(x.GEOWGS::lat );
        const geoLon : String 
= String(x.GEOWGS::long );
        
if( geoLat && geoLon )
        {
            
return new MapPoint( Number( geoLon ), Number( geoLat ));
        }
        
        const georssPoint : String 
= String(x.GEORSS::point);
        
if( georssPoint )
        {
            
return parseGeoRSSPoint(georssPoint);
        }
        
        const pointList : XMLList 
= x.GEO::point;
        
if( pointList && pointList.length() > 0 )
        {
            const geoPoint : XML 
= pointList[0];
            const geoPLat : Number 
= Number(geoPoint.GEO::lat);
            const geoPLon : Number 
= Number(geoPoint.GEO::long);
            
return new MapPoint( geoPLon, geoPLat );
        }
        
        const georssPolygon : String 
= String(x.GEORSS::polygon);
        
if( georssPolygon )
        {
            
return parseGeoRSSPolygon( georssPolygon);
        }        
                
        const whereList : XMLList 
= x.GEORSS::where;
        
if( whereList && whereList.length() > 0 )
        {
            const pos : String 
= whereList[0].GML::Point[0].GML::pos[0];
            const arr : Array 
= pos.split(" ");
            const gmlLat : Number 
= Number(arr[0]);
            const gmlLon : Number 
= Number(arr[1]);
            
return new MapPoint( gmlLon, gmlLat );
        }                        
        
return null;
    }
    
    private static 
function parseGeoRSSWhere( x : XML ) : Geometry
    {
        
return null;
    }
    
    private static 
function parseGeoRSSPoint( text : String ) : Geometry
    {
        const tokens : Array 
= StringUtil.trim(text).split(" ");
        const lat : Number 
= Number(tokens[0]);
        const lon : Number 
= Number(tokens[1]);
        
return new MapPoint( lon, lat);         
    }
    
    private static 
function parseGeoRSSPolygon( text : String ) : Geometry
    {
        const path : Array 
= [];
        const tokens : Array 
= StringUtil.trim(text).split(" ");
        
forvar i:int=0, j:int=1; j < tokens.length; i+=2, j+=2 )
        {
            
var lat : Number = Number(tokens[i]);
            
var lon : Number = Number(tokens[j]);
            path.push( 
new MapPoint( lon, lat) );   
        }
        
return new Polygon([path]);
    }

}
}

class SingletonEnforcer
{    
}
复制代码

    XML解析中的中文编码是经常会碰到的一个问题,但万变不离其宗——UTF-8,请参考这两篇文章:

    说到GeoRSS,GeoRSS是一种地理位置搜索与聚合的方法,在地图上显示当前消息的地理位置,标注出来,点击查询时可以访问该消息的具体内容,如在地图上以GeoRSS方式标识会议地点,点击之后可以继续挖掘信息,一月前我就是通过GeoRSS找到了Oracle开发者大会具体位置和时间。

 本文转自Flyingis博客园博客,原文链接:http://www.cnblogs.com/flyingis/archive/2008/12/21/1359162.html,如需转载请自行联系原作者

相关文章
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
93 2
|
1天前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
14 2
|
5天前
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
22 5
|
6天前
|
API 数据处理 开发者
获取淘宝分类详情:深入解析taobao.cat_get API接口
淘宝开放平台推出的`taobao.cat_get` API接口,帮助开发者和商家获取淘宝、天猫的商品分类详情。该接口支持获取类目列表、属性及父类目信息,通过指定分类ID(cid)实现精准查询,并提供灵活的参数设置和高效的数据处理。使用流程包括注册账号、创建应用、获取App Key/Secret、构造请求、发送并解析响应。示例代码展示了如何用Python调用此API。开发者可借此为电商项目提供数据支持。
|
5天前
|
XML 算法 API
通过亚马逊产品广告API获取国际商品详情的技术实现
本文详细介绍如何通过亚马逊产品广告API获取国际商品信息。首先,需注册亚马逊联盟账户并申请API访问权限,获取AWS Access Key ID等凭证。接着,解析API端点和服务,如ItemLookup和ItemSearch。然后,构建API请求,包括URL、参数设置及签名生成。以Python为例,使用requests或boto3库实现API调用,并处理XML格式的API响应。最后,注意API速率限制、区域设置、数据更新及错误处理。参考官方文档确保调用准确性和安全性。
|
13天前
|
JSON 搜索推荐 API
拍立淘API是基于图像识别技术的服务接口,支持淘宝、1688和义乌购平台。
拍立淘API是基于图像识别技术的服务接口,支持淘宝、1688和义乌购平台。用户上传图片后,系统能快速匹配相似商品,提供精准搜索结果,并根据用户历史推荐个性化商品,简化购物流程。开发者需注册账号并获取API Key,授权权限后调用接口,返回商品详细信息如ID、标题、价格等。使用时需遵守频率限制,确保图片质量,保障数据安全。
|
22天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
13天前
|
安全 API 数据安全/隐私保护
速卖通AliExpress商品详情API接口深度解析与实战应用
速卖通(AliExpress)作为全球化电商的重要平台,提供了丰富的商品资源和便捷的购物体验。为了提升用户体验和优化商品管理,速卖通开放了API接口,其中商品详情API尤为关键。本文介绍如何获取API密钥、调用商品详情API接口,并处理API响应数据,帮助开发者和商家高效利用这些工具。通过合理规划API调用策略和确保合法合规使用,开发者可以更好地获取商品信息,优化管理和营销策略。
|
21天前
|
JSON 自然语言处理 Java
OpenAI API深度解析:参数、Token、计费与多种调用方式
随着人工智能技术的飞速发展,OpenAI API已成为许多开发者和企业的得力助手。本文将深入探讨OpenAI API的参数、Token、计费方式,以及如何通过Rest API(以Postman为例)、Java API调用、工具调用等方式实现与OpenAI的交互,并特别关注调用具有视觉功能的GPT-4o使用本地图片的功能。此外,本文还将介绍JSON模式、可重现输出的seed机制、使用代码统计Token数量、开发控制台循环聊天,以及基于最大Token数量的消息列表限制和会话长度管理的控制台循环聊天。
158 7
|
1月前
|
机器学习/深度学习 搜索推荐 API
淘宝/天猫按图搜索(拍立淘)API的深度解析与应用实践
在数字化时代,电商行业迅速发展,个性化、便捷性和高效性成为消费者新需求。淘宝/天猫推出的拍立淘API,利用图像识别技术,提供精准的购物搜索体验。本文深入探讨其原理、优势、应用场景及实现方法,助力电商技术和用户体验提升。

推荐镜像

更多