Flash / Flex / ActionScript/XML/Filter

Материал из Web эксперт
Перейти к: навигация, поиск

A list of employees whose ID number is 238

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var staff:XML = <STAFF>
         <EMPLOYEE ID="501" HIRED="109">
           <NAME>M</NAME>
           <MANAGER>J</MANAGER>
           <SALARY>25000</SALARY>
           <POSITION>Designer</POSITION>
         </EMPLOYEE>
       
         <EMPLOYEE ID="238" HIRED="101">
           <NAME>J</NAME>
           <MANAGER>D</MANAGER>
           <SALARY>55000</SALARY>
           <POSITION>Manager</POSITION>
         </EMPLOYEE>
       </STAFF>
       
       trace(staff.*.(@ID == "238"));
   }
 }

}

       </source>
   
  


Filtering XML Data

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var staff:XML = <STAFF>
         <EMPLOYEE ID="501" HIRED="109">
           <NAME>M</NAME>
           <MANAGER>J</MANAGER>
           <SALARY>25000</SALARY>
           <POSITION>Designer</POSITION>
         </EMPLOYEE>
       
         <EMPLOYEE ID="238" HIRED="101">
           <NAME>J</NAME>
           <MANAGER>D</MANAGER>
           <SALARY>55000</SALARY>
           <POSITION>Manager</POSITION>
         </EMPLOYEE>
       </STAFF>
       
       var allEmployees:XMLList = staff.*;
       
       var employeesUnderJames:XMLList = allEmployees.(MANAGER == "James Porter");
       
       trace(employeesUnderJames);
   }
 }

}

       </source>
   
  


Retrieve a list of employees hired in the year 2004

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var staff:XML = <STAFF>
         <EMPLOYEE ID="501" HIRED="109">
           <NAME>M</NAME>
           <MANAGER>J</MANAGER>
           <SALARY>25000</SALARY>
           <POSITION>Designer</POSITION>
         </EMPLOYEE>
       
         <EMPLOYEE ID="238" HIRED="101">
           <NAME>J</NAME>
           <MANAGER>D</MANAGER>
           <SALARY>55000</SALARY>
           <POSITION>Manager</POSITION>
         </EMPLOYEE>
       </STAFF>
       
       trace(staff.*.(@HIRED >= 107&& @HIRED <= 101));
       
   }
 }

}

       </source>
   
  


Returns a list of employees with a salary between $35,000 and $50,000:

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var staff:XML = <STAFF>
         <EMPLOYEE ID="501" HIRED="109">
           <NAME>M</NAME>
           <MANAGER>J</MANAGER>
           <SALARY>25000</SALARY>
           <POSITION>Designer</POSITION>
         </EMPLOYEE>
       
         <EMPLOYEE ID="238" HIRED="101">
           <NAME>J</NAME>
           <MANAGER>D</MANAGER>
           <SALARY>55000</SALARY>
           <POSITION>Manager</POSITION>
         </EMPLOYEE>
       </STAFF>
       
       trace(staff.*.(SALARY >= 35000 && SALARY <= 50000));
   }
 }

}

       </source>
   
  


Returns a list of employees with a salary less than or equal to $35,000.

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var staff:XML = <STAFF>
         <EMPLOYEE ID="501" HIRED="109">
           <NAME>M</NAME>
           <MANAGER>J</MANAGER>
           <SALARY>25000</SALARY>
           <POSITION>Designer</POSITION>
         </EMPLOYEE>
       
         <EMPLOYEE ID="238" HIRED="101">
           <NAME>J</NAME>
           <MANAGER>D</MANAGER>
           <SALARY>55000</SALARY>
           <POSITION>Manager</POSITION>
         </EMPLOYEE>
       </STAFF>
       
       trace(staff.*.(SALARY <= 35000));
   }
 }

}

       </source>
   
  


Returns a list of the designers in the company:

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var staff:XML = <STAFF>
         <EMPLOYEE ID="501" HIRED="109">
           <NAME>M</NAME>
           <MANAGER>J</MANAGER>
           <SALARY>25000</SALARY>
           <POSITION>Designer</POSITION>
         </EMPLOYEE>
       
         <EMPLOYEE ID="238" HIRED="101">
           <NAME>J</NAME>
           <MANAGER>D</MANAGER>
           <SALARY>55000</SALARY>
           <POSITION>Manager</POSITION>
         </EMPLOYEE>
       </STAFF>
       
       trace(staff.*.(POSITION == "Designer"));
   }
 }

}

       </source>
   
  


Searching XML

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var foodgroup:XML = <foodgroup>
                     <fruits>
                       <fruit color="red">Apple</fruit>
                       <fruit color="orange">Orange</fruit>
                       <fruit color="green">Pear</fruit>
                       <fruit color="red">Watermelon</fruit>
                       <servings>3</servings>
                     </fruits>
                     <vegetables>
                       <vegetable color="red">Tomato</vegetable>
                       <vegetable color="brown">Potato</vegetable>
                       <vegetable color="green">Broccoli</vegetable>
                       <servings>2</servings>
                     </vegetables>
                   </foodgroup>;
       var fruitList:XMLList = foodgroup.fruits.fruit;
       
       var theApple:XML = foodgroup.fruits.fruit[0];
       
       var vegetableList:XMLList = foodgroup..vegetable;
       
       var servings:XMLList = foodgroup.*.servings;
       
       var colorValues:XMLList = foodgroup.fruits.fruit.@color;
       
       
       trace( foodgroup..fruit.( @color == "red" ) );
       
       trace( foodgroup..*.( hasOwnProperty( "@color" ) && @color == "red" )  );
       
   }
 }

}

       </source>
   
  


Use regular repression to filter tag value

   <source lang="java">

package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var fruits:XML = <fruits>
                          <fruit color="red">
                            <name>Apple</name>
                          </fruit>
                          <fruit color="orange">
                            <name>Orange</name>
                          </fruit>
                          <fruit color="green">
                            <name>Pear</name>
                          </fruit>
                          <fruit color="red">
                            <name>Watermelon</name>
                          </fruit>
                        </fruits>;
       trace( fruits.fruit.( /^[aeiouAEIOU].*/.test( name ) ) );
   }
 }

}

       </source>