flex中xml对象通过xpath查找结点的方法
今天,在完成一个功能时需要写一个xml的配置文件将指标信息配置进去,然后页面需要时去读取并解析其中的内容,我草拟了一个xml结构,但是在flex端开发人员却反映该xml结构不好解析不好使用。后来了解了一下,原因是对flex端通过xpath解析xml对象使用不熟悉导致,如果使用传统的循环遍历的方式将会带来极大的工作量和复杂度,下边就说一下遇到的xml结构及使用xpath来解析的方法。xml结构如下图所示:

下边是几个需求及查询方法:
//查询根结点下所有kpis结点
var xmlList:XMLList = kpiXml.kpis;
//查询根结点下所有type=VIP的kpis结点
var xmlList:XMLList =kpiXml.kpis.(@type=='VIP');
//查询根结点下所有type=VIP的kpis结点的所有kpi子结点
var xmlList:XMLList =kpiXml.kpis.(@type=='VIP').kpi;
//查询根结点下所有type=VIP的kpis结点的所有neType=PROVINCE并且interval=60的kpi子结点
var xmlList:XMLList =kpiXml.kpis.(@type=='VIP').kpi.(@neType=='PROVINCE' && @interval=='60')as XMLList;
//查询所有kpis结点,不区分级别
var xmlList:XMLList = kpiXml..kpis;
注意:需要将xml对象的format属性设置为e4x,示例:<fx:XML source="config/daymonitor_kpiconfig.xml" format="e4x" id="kpiXml"/>

浙公网安备 33010602011771号