现在的位置: 首页 > 综合 > 正文

Flex xml的实用操作

2013年12月19日 ⁄ 综合 ⁄ 共 3636字 ⁄ 字号 评论关闭

XML类包含用于处理XML对象的工作方法和属性。 XML类(以及XMLList,命名空间和QName类)基于ECMAScript中定义的XMLE4X)规范(ECMA - 3572版)标准,实现了强大的XML处理在。使用toXMLString()方法返回的XML对象的字符串表示不论XML对象具有简单内容还是复杂内容。

但是flexxml操作还不支持xquery等简便、强大的查询操作,但是对于一般的xml结点读取、属性读取、结点查找、属性查找、结点遍历等还是完全可以胜任。

本文提供了一个xml操作的实用Demo,主要有下述3部分内容:

1)构建xml

2xml结点读取、属性读取、结点遍历等;

3)用户可以利用..先得到所有结点列表xmllist,然后遍历该xmllist查找任何元素、结点。

<?xml version="1.0" encoding="utf-8"?>

<!--xml 操作demo-->

<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" width="800"

              height="600" creationComplete="init()" fontSize="11">

    <s:layout>

       <s:BasicLayout/>

    </s:layout>

 

    <fx:Script>

       <![CDATA[

           protected function btnQuery_clickHandler(event:MouseEvent):void

           {

              var xmllist:XMLList = employees..employee;    //列举所有员工信息

             

              txtOpreate.text="";

              for each(var item:XML in xmllist){        //遍历员工信息,看是否有匹配的zip

                  if(item.address.zip==txtZip.text){

                     txtOpreate.text = item.toXMLString();

                     break;

                  }

              }

           }

       ]]>

    </fx:Script>

 

 

    <fx:Script>

       <![CDATA[

           private var employees:XML;

           //

           protected function init():void{

              //构建XML

              employees =

                  <employees>

                     <employee ssn="123-123-1234">

                         <name first="John" last="Doe"/>

                         <address>

                            <street>11 Main St.</street>

                            <city>San Francisco</city>

                            <state>CA</state>

                            <zip>98765</zip>

                         </address>

                     </employee>

                     <employee ssn="789-789-7890">

                         <name first="Mary" last="Roe"/>

                         <address>

                            <street>99 Broad St.</street>

                            <city>Newton</city>

                            <state>MA</state>

                            <zip>01234</zip>

                         </address>

                     </employee>

                  </employees>;

              //显示xml

              XML.prettyIndent = 2;    //设置xml缩进量

              txtSrc.text = employees.toXMLString();

           }

          

           protected function btnShow_clickHandler(event:MouseEvent):void

           {

              var  output:String = "";

              //employees.employee[0].address.zip, 98765

              output+="employees.employee[0].address.zip: "+employees.employee[0].address.zip+"/r/n/r/n";

              //employees.employee[1].@ssn, 789-789-7890

              output+="employees.employee[1].@ssn: "+employees.employee[1].@ssn+"/r/n/r/n";

              //employees.employee.name, <name first="John" last="Doe"/>

              //<name first="Mary" last="Roe"/>

              output+="employees.employee.name: "+employees.employee.name+"/r/n/r/n";

              //employees..zip[0], 98765

              output+="employees..zip[0]: "+employees..zip[0]+"/r/n/r/n";

              //employees..@ssn[1], 789-789-7890

              output+="employees..@ssn[1]: "+employees..@ssn[1]+"/r/n/r/n";

              //employees..name, <name first="John" last="Doe"/>

              //<name first="Mary" last="Roe"/>

              output+="employees..name: "+employees..name+"/r/n/r/n";

              //employees.employee[0].address.*, <street>11 Main St.</street>

              //<city>San Francisco</city>

              //<state>CA</state>

              //<zip>98765</zip>

              output+="employees.employee[0].address.*: "+employees.employee[0].address.*+"/r/n";

 

              txtOpreate.text = output;

 

           }

       ]]>-->

作者:

抱歉!评论已关闭.