Flash / Flex / ActionScript/XML/Filter
Содержание
- 1 A list of employees whose ID number is 238
- 2 Filtering XML Data
- 3 Retrieve a list of employees hired in the year 2004
- 4 Returns a list of employees with a salary between $35,000 and $50,000:
- 5 Returns a list of employees with a salary less than or equal to $35,000.
- 6 Returns a list of the designers in the company:
- 7 Searching XML
- 8 Use regular repression to filter tag value
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>