flex读取外部XML文件方式

CANoe介绍及使用总结 本文主要对Vector CANoe工具的功能和使用方法,进行了详细的总结和介绍 阅读详情

在Flex中我们经常使用xml文件,因为Flex支持强大的E4X功能,读取xml相当简洁。

       总结一下常用的读取XML配置文件的方法:

      1. 使用Model标签形式

       首先声明Model标签,

       <mx:Model id="model" source="conf/configuration.xml"/>

       xml形如:

       <config>

                <username>hd</username>

               <psw>123456<psw>

       </config>

       那么,只需要在初始化事件中直接调用即可,例如:model.username, model.psw即可取到想要的值。

      2. 使用URLLoader

     var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, handleURLLoaderCompleted);
urlLoader.load(new URLRequest("conf/configuration.xml"));

    private function handleURLLoaderCompleted(event:Event):void {
var loader:URLLoader = event.target as URLLoader;
xml = XML(loader.data);

// dispatch Event here
}

    3. 使用HttpService

    <mx:HTTPService id="xmlReader" url="conf/configuration.xml"

                                                                  result="resultHandler(event)"/>      

   private function resultHandler(event:ResultEvent):void {
var dp:ArrayCollection = event.result as ArrayCollection;

       ......
}    

    在组件的createComplete事件中添加 xmlReader.send();语句调用Http请求。这种方法读取的XML文件格式是数组的形式,所以用ArrayCollection接收。如果想使用强大的E4X功能,需要在HTTPService对象中加上resultFormat="e4x"以XML的格式读取进来而不要转换为ArrayCollection。


注意:通过第一种方法加载进来的XML是在编译时编译到程序里面的,编译后再修改XML对程序无任何影响。所以还是用第二和第三种方法来加载外部XML文件。


  flex操作XML类型变量

 

在介绍XML对象的处理之前,介绍一个扩展语言"E4X",E4X大大简化了传统对XML的操作方式(如DOM接口)。

你会发现在程序中E4X操作XML是如此的简单,懒人们都乐坏了。

这里先给出一个XML对象,后面都将对这个对象进行操作

view plaincopy to clipboardprint?
var myXML:XML =            
<books>              
<book name="flex tutorial">               
<price>30</price>               
<author>adobe</author>              
</book>               
<book name="sliverlight tutorial">            
<price>40</price>               
<author>microsoft</author>              
</book>               
<book name="java tutorial">               
<price>50</price>               
<author>sun</author>            
</book>               
<author>cyeric</author> //这是没有意义的一个节点,只是为了后面的演示    
</books>            
var myXML:XML =   
<books>   
<book name="flex tutorial">   
<price>30</price>   
<author>adobe</author>   
</book>   
<book name="sliverlight tutorial">   
<price>40</price>   
<author>microsoft</author>   
</book>   
<book name="java tutorial">   
<price>50</price>   
<author>sun</author>   
</book>   
<author>cyeric</author> //这是没有意义的一个节点,只是为了后面的演示
</books>   

 

 

1)查询  
使用"."操作符查询节点,使用"[]"访问指定索引的节点   
trace(myXML.book[0]) ;       

输出   
<book name="flex tutorial">   
<price>30</price>   
<author>adobe</author>   
</book>   
输出内容说明,得到了第一个子节点;另外,如果我们想查询所有book节点的话只需要把[0]去掉就可以了。

使用".."操作符访问所有以该标签命名的节点,而忽略节点的上下关系,注意最后那个节点
trace(myXML..author);

输出
<author>adobe</author>
<author>microsoft</author>
<author>sun</author>
<author>cyeric</author>

可以看到,不管author位于哪个位置,都打印了出来

使用"@"操作符访问节点属性
trace(myXML.book[0].@name)

输出
flex tutorial
第一个子节点的name属性就被打印了出来
以上这4个操作符号".","[]","..","@" 即为最常用的4个E4X操作符,简单吧,下面就循序渐进。

在查询过程中可以使用E4X的过滤功能,假如我现在只想查询价格在50块以下的书,我们可以这样
trace(myXML.book.(price<50));

输出
<book name="flex tutorial">
<price>30</price>
<author>adobe</author>
</book>
<book name="sliverlight tutorial">
<price>40</price>
<author>microsoft</author>
</book>
价格为50元的那本书就没有打印出来了。


属性也可以过滤
trace(myXML.book.(@name=='flex tutorial'));

输出
<book name="flex tutorial">
<price>30</price>
<author>adobe</author>
</book>

我们还可以把查询到的XML文本给改了,比如书店要把书都处理掉,然后叫卖:"5元5元一律5元"。
trace(myXML.book.(price=5));

输出
<book name="flex tutorial">
<price>5</price>
<author>adobe</author>
</book>
<book name="sliverlight tutorial">
<price>5</price>
<author>microsoft</author>
</book>
<book name="java tutorial">
<price>5</price>   
<author>sun</author>   
</book>  

2) 修改,修改XML对象包括修改,添加和删除操作   
虽然在介绍查询的时候介绍过可以在查询到XML文本的时候把它的内容给修改了。   

这里先给出一个XML对象,后面都将对这个对象进行操作        
var myXML:XML =   
<books>   
<book name="flex tutorial">   
<price>30</price>   
<author>adobe</author>   
</book>   
</books>   

添加元素/节点,使用insertChildBefore和insertChildAfter方法在某一位置添加元素/节点,appendChild和prependChild方法在最前和最后添加元素/节点
myXML.insertChildAfter(myXML.book[0],<newbook name="After"/>);    
myXML.insertChildBefore(myXML.book[0],<newbook name="Before"/>);    
myXML.appendChild(<newbook name="Append"/>);    
myXML.prependChild(<newbook name="Prepend"/>);    
trace(myXML);   
输出
<books>
<newbook name="Prepend"/>
<newbook name="Before"/>
<book name="flex tutorial">
<price>30</price>
<author>adobe</author>
</book>
<newbook name="After"/>
<newbook name="Append"/>
</books>
在第一个元素的前后各添加了一个元素

添加属性,直接使用E4X带来的便利
myXML.book[0].@date="2008";    
trace(myXML);   
输出
<books>
<book name="flex tutorial" date="2008">
<price>30</price>
<author>adobe</author>
</book>
</books>

修改XML对象
myXML.book[0].author="奥多比";    
trace(myXML);     

<books>   
<book name="flex tutorial">   
<price>30</price>   
<author>奥多比</author>   
</book>   
</books>   
也很简单,修改属性的方法也是一样  

删除元素节点,属性等,使用delete关键字   
delete myXML.book[0].@name;      
delete myXML.book[0].author;      
delete myXML.book[0].price.text()[0];      
trace(myXML);      

输出   
<books>   
<book>     
<price/>     
</book>     
</books>

 

在Flex中,XML是本地数据类型,就像Number或Boolean一样。

Flex读取外部XML文件的方法(后端) 通过以上步骤,我们可以在Flex应用程序中通过后端处理来读取外部的XML文件数据。首先,我们创建一个后端处理程序来读取XML文件并将数据返回给Flex应用程序。然后,在Flex应用程序中调用后端处理程序,并处理返回的数据。首先,需要在后端(例如PHP、Java等)创建一个处理程序来读取XML文件并将数据返回给Flex应用程序。在Flex应用程序中,如果需要读取外部的XML文件数据,可以通过后端处理来实现。需要注意的是,上述示例中的URL为示意用途,需要根据实际情况修改为后端处理程序的URL。 阅读详情

相关推荐

frames_cycle_test.7z

Flexray 协议的通信报文矩阵是 .arxml文件;Can协议的通信矩阵是DBC文件,当一个系统中存在flexray和CAN的报文,这个脚本通过python解析报文参数作为输入,CAPL对报文周期进行测试。

flex xml的一个解析

今天碰到了一个问题,就是flex在解析从文件读取的xmll的时候的一个错误:分析器错误,属性未能结束 错误的起因是由于我向xml文件中写入的是htmltext格式的字符串,并保存在文件中,然后从文件读取的时候生成的xml就报错。 弄了半天,还是头给搞定的,这是我对xml不熟,在此记过!! 错误原因是因为在写入xml的文件中包含了类似于...等xml文件的格式,所以xml在解

babylon_0049的专栏 1906

STM32F103C8T6与OV7670摄像头在TFT屏上的实时数字识别系统实现

本文详细介绍了基于STM32F103C8T6单片机和OV7670摄像头实现实时数字识别系统的全过程。系统通过图像采集、预处理、二值化和模板匹配算法,在TFT屏上实时显示识别结果,并针对资源受限的单片机环境提供了内存与性能优化策略,适用于智能家居、工业仪表读数等低成本嵌入式视觉应用场景。

open4的博客 278

flex 操作xml 实现增删改查

一 在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语。    元素:XML中拥有开始标签和结束标签的这一块称为“元素”     节点:把XML元素与文本结合起来统称为节点     根节点: 位于整个XML文当顶端的节点     文本节点:包含文本的节点     属性:元素的组成部分,以键/值形式放在元素标签内 用一个例子来说明 view plaincopy to cl

学习记录 1596

STM32G4系列数字LLC控制程序开发实战

本文详细介绍了基于STM32G4系列MCU的数字LLC控制程序开发全流程。从开发环境搭建、中断服务函数设计,到核心的电压环PID算法、Burst模式控制、状态机设计以及软启动优化,提供了完整的实战代码和关键参数调试经验,帮助开发者高效实现高性能数字电源控制。

weixin_29185493的博客 278

保姆级教程:断网环境下用Flexnet服务器搞定SolidWorks 2021安装与破解(附错误5解决方案)

本文提供SolidWorks 2021在断网环境下的企业级部署指南,详细解析Flexnet服务器本地化工作原理,并给出安装与破解的实战方案,特别针对常见的'错误5'问题提供多维度解决方案。适用于需要内网隔离或移动办公的工业设计场景,确保数据安全与授权合规。

weixin_28683391的博客 296

FIBEX文件详细解析

FIBEX文件是flexray的数据库文件,相当于CAN的DBC。首先得了解这种文件的架构,就像下图那样,所以本文也是按照这个架构来进行展开讲解。project和PROCESSING-INFORMATION都是次要的,最重要的是ELEMENTS里面的5个元素。每个集群里面可以包含很多通道,通道里面又有节点,节点下有报文、报文下有信号,所以这个集群是最大的,一般只需要一个。vector提供了一些Demo给我们参考,譬如这个FIBEX_example.xml其实就是一个xml格式的文件。

qiu421的博客 2694

YOLOv8n行人检测实战:从数据集准备到模型训练

本文详细介绍了使用YOLOv8n进行行人检测的完整流程。首先阐述了YOLOv8的优势:高速推理(300+FPS)、更高精度、易用性和轻量化(仅6MB)。接着通过Docker搭建GPU训练环境,配置32GB共享内存避免数据加载问题,并安装必要的框架和OpenCV组件。数据集采用COCO2017标注格式,包含归一化坐标的YOLO标签文件。通过可视化脚本验证标注准确性后,提出多数据集融合训练策略以增强模型泛化能力。最后使用Ultralytics框架启动训练,展现了从环境搭建到模型训练的完整技术路径。该方案兼顾检测

Hi20240217的博客 1090

精通Flex 3.0――4.6.7 XML的类型转换

  对于XML类型的转换,首先可以在进行从XML对象向XMLList对象的转换。XML对象实际上也是一个只有一个节点的XMLList对象。可以通过定义变量的方式直接完成转换。从XML的一部分转换为XMLList的代码如下所示。var flexXML:XML=                                               Flash CS39

Flex 1429

ABAP Development Tool for Visual Studio Code 里使用 MCP server

本文讨论了SAP ABAP开发环境中,除GitHub Copilot外,其他可作为MCP客户端接入ABAP开发工具(MCP server)的编码代理(coding agent)。GitHub Copilot是官方确认可用的工具,而其他代理如Claude Code、Cursor、Windsurf Cascade、Cline和Continue虽然理论上支持MCP协议,但要实际用于ABAP开发还需满足两个关键条件:兼容MCP协议,并能处理VS Code虚拟工作区文件系统。这些工具需要单独验证是否支持ABAP开发工

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 255

基于ESP32的智能健康监测系统开发

本文介绍了如何基于ESP32开发智能健康监测系统,从硬件选型、系统架构到软件实现的每一个环节。通过ESP32的Wi-Fi功能、传感器模块和云平台的结合,我们实现了实时健康数据监测、远程查看、报警等功能。系统的低功耗特性使得其适用于长期健康监测,能够为用户提供更便捷的健康管理方案。随着技术的不断发展,未来智能健康监测系统将进一步发展。例如,增加更多的传感器,提升数据分析能力,甚至通过人工智能算法来预测用户的健康趋势,为用户提供个性化的健康建议。

2201_76125393的博客 1104

flex actionscript读取外部 (服务端) XML文件方式

 flex  actionscript读取外部 (服务端) XML文件方式,C# webservice //\bin-debug\conf\configuration.xml 文件     dacong   123456  protected function application1_addedToStageHandler(event:Even

dacong的专栏 928

【PCIe 总线及设备入门学习专栏 6.2 -- PCIe VDM (Vendor Defined Messages)】

在PCIe协议中,Vendor Defined Messages (VDMs) 是一种允许厂商定义和传输特定功能的消息类型。这种机制扩展了标准 PCIe 消息的功能,可以用于实现供应商自定义的功能,例如固件更新、设备配置和诊断信息传输。PCIe VDM 是通过实现的,它遵循 PCIe 协议栈的结构,包括事务层、数据链路层和物理层。

CodingCos的博客 1895

Flex读取外部XML文件的四种方法

[quote]本文向大家介绍一下Flex读取外部XML文件的几种方法,因为Flex支持强大的E4X功能,所以在flex中xml文件的操作非常简单。[/quote] 本文和大家重点讨论一下Flex读取外部XML文件的几种方法,因为Flex支持强大的E4X功能,所以在flex中xml文件的操作非常简单。下面总结一下常用的读取XML配置文件的方法,希望对你有所帮助。 Flex读取外部XML文件的...

yangguoklose的专栏 272

星敏感器:卫星姿态测量的“星空导航仪”

在卫星、航天器和深空探测器的姿态控制系统中,星敏感器(Star Tracker) 是最精确的姿态测量设备之一。它通过识别恒星的位置,计算出航天器在惯性空间中的三轴姿态,精度可达 角秒级(arcsecond),是许多高精度任务(如遥感、天文观测、深空探测)的核心传感器。

ScilogyHunter的博客 3693

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Flex读取配置文件(转载)

读取Flex配置文件1.使用Model标签xml:  Kevin4325d543d32ab34ddd432.使用URLLoadervarloader:URLLoader=newURLLoader(newURLRequest("asset/config.xml");  loader.addEventListener(Event.COMPLETE,handleCompleted);  privatefunctionhandleCompleted(event:Event):void  {  

shawn 1740

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Flex 动态读取外部xml文件

 在Flex中xml文件是使用频率非常高的,因为在flex中xml文件的操作非常简单。有的时候我们希望用xml作为配置文件来动态配置我们的系统。虽然flexSDK提供了一个只能用在在mxml文件中标签,这个标签的source属性可以读取外部的xml文件,但是这样的方式会使xml文件嵌入到生成的swf文件中。这样做的结果就是发布后即使修改了xml的内容对程序也么有影响。这样做没有达到使用外部xml文

笑傲江湖 5730

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Flex通过HTTPService读取外部的XML文件

直接上码. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" creat

billynetbean的专栏 667

Flex读取外部XML中文乱码解决办法(转)

方法一: 用URLLoader加载XML,然后将data转化为ByteArray 用byteArray.readMultiByte(bytes.length,"utf-8") 然后将转化后的字符串再强制转化为XML   var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.Bina

olfisher的专栏 3234

Flex 读取外 部XML文件

因为Flex支持强大的E4X功能,所以在flex中xml文 件的操作非常简单。下面,总结一下常用的读取XML配 置文件的方法: 1 使用Model标签形式 首先声明Model标签: <mx:Model id="danxuan" source="myData/danxuan.xml"/> <mx:DataGrid dataProvider="{dan...

aiqixiao2017的博客 113

Flex中读取外部XML文件

Flex中读取外部本地XML文件,为DataGrid提供数据的示例: MXML文件:   提供数据的ShoppingCartList.xml文件,保存在myData/ShoppingCartList.xml下,代码如下: Apple 2.33 12

xinem的专栏 2254
上一篇: Java技巧:AJAX向Response留中输出Xml的办法
下一篇: 解决ArrayCollection中使用for each删除指定项的失效的办法
cg_program
博客等级 码龄19年 245粉丝 147原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值