zoukankan      html  css  js  c++  java
  • 在Flex中用于处理XML对象的E4X 方法

    ECMAScript for XML 规范定义了一组用于使用 XML 数据的类和功能。这些类和功能统称为 E4X。ActionScript 3.0 包含以下 E4X 类:XML、XMLList、QName 和 Namespace。

    E4X 类的方法、属性和运算符旨在实现以下目标:

    • 简单 — 在可能的情况下,使用 E4X 可以更容易地编写和理解用于使用 XML 数据的代码。

    • 一致 — E4X 背后的方法和推理在内部是一致的,并与 ActionScript 的其他部分保持一致。

    • 熟悉 — 使用众所周知的运算符来处理 XML 数据,如点 (.) 运算符。

    注: ActionScript 2.0 中有一个不同的 XML 类。在 ActionScript 3.0 中,已将该类重命名为 XMLDocument,以使该名称不会与作为 E4X 的一部分的 ActionScript 3.0 XML 类冲突。在 ActionScript 3.0 中,flash.xml 包中包含了 XMLDocument、XMLNode、XMLParser 和 XMLTag 几个旧类,主要是用于旧支持。新的 E4X 类是核心类;无需导入包即可使用这些类。有关旧 ActionScript 2.0 XML 类的详细信息,请参阅用于 Adobe Flash Platform 的 ActionScript 3.0 参考中的 flash.xml 包

    下面是使用 E4X 处理数据的一个示例:

    var myXML:XML =  
        <order> 
            <item id='1'> 
                <menuName>burger</menuName> 
                <price>3.95</price> 
            </item> 
            <item id='2'> 
                <menuName>fries</menuName> 
                <price>1.45</price> 
            </item> 
        </order>

    通常,应用程序都会从外部源(如 Web 服务或 RSS 供给)加载 XML 数据。然而,为清楚起见,此处提供的代码示例将 XML 数据作为文本进行分配。

    如下面的代码所示,E4X 包含了一些直观运算符(如点 (.) 和属性标识符 (@) 运算符),用于访问 XML 中的属性:

    trace(myXML.item[0].menuName); // Output: burger 
    trace(myXML.item.(@id==2).menuName); // Output: fries 
    trace(myXML.item.(menuName=="burger").price); // Output: 3.95

    使用 appendChild() 方法可为 XML 分配新的子节点,如以下代码片断所示:

    var newItem:XML =  
        <item id="3"> 
            <menuName>medium cola</menuName> 
            <price>1.25</price> 
        </item> 
     
    myXML.appendChild(newItem);

    使用 @ 和 . 运算符不仅可以读取数据,还可以分配数据,如下所示:

    myXML.item[0].menuName="regular burger"; 
    myXML.item[1].menuName="small fries"; 
    myXML.item[2].menuName="medium cola"; 
     
    myXML.item.(menuName=="regular burger").@quantity = "2"; 
    myXML.item.(menuName=="small fries").@quantity = "2"; 
    myXML.item.(menuName=="medium cola").@quantity = "2";

    使用 for 循环可以循环访问 XML 的节点,如下所示:

    var total:Number = 0; 
    for each (var property:XML in myXML.item) 
    { 
        var q:int = Number(property.@quantity); 
        var p:Number = Number(property.price); 
        var itemTotal:Number = q * p; 
        total += itemTotal; 
        trace(q + " " + property.menuName + " $" + itemTotal.toFixed(2)) 
    } 
    trace("Total: $", total.toFixed(2));
  • 相关阅读:
    委托、Lamda表达式
    springcloud-feign的hystrix支持
    springcloud-断路器hystrix
    Java原子性、可见性、内存模型
    volatile特性
    synchronized实现可见性
    Js四则运算精度问题处理
    docker 简单安装java web项目
    elasticsearch 分布式集群搭建
    logstash-input-jdbc同时同步多个表
  • 原文地址:https://www.cnblogs.com/fuland/p/3629334.html
Copyright © 2011-2022 走看看