Flash / Flex / ActionScript/XML/XML Object
Содержание
- 1 Adding Attributes to an XML Element
- 2 Create the XML structure with a string
- 3 Creating an XML Object
- 4 Finding Elements by Name
- 5 Reading Elements in an XML Tree
- 6 Reading Text Nodes and Their Values
- 7 Understanding the XML Classes
- 8 Using Expressions within Literals: embed ActionScript code directly into your XML data.
Adding Attributes to an XML Element
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){
var example:XML = <example><someElement/></example>; example.someElement.@number = 12.1; example.someElement.@string = "example"; example.someElement.@boolean = true; example.someElement.@array = ["a", null, 7, undefined, "c"]; trace( example ); example.someElement.@["bad-variable-name"] = "yes"; example.someElement.@["color" + num] = "red"; } }
}
</source>
Create the XML structure with a string
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var str:String = "<gamescore><username>username </username>" + "<score>111</score></gamescore>"; // Pass the string to the constructor to create an XML object var example:XML = new XML( str ); } }
}
</source>
Creating an XML Object
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var example:XML = <abc><a>eh</a>bee<c>see</c></abc>; var username:String = "Darron"; var score:int = 1000; var example:XML = <gamescore> <username>{username}</username> <score>{score}</score> </gamescore>; } }
}
</source>
Finding Elements by Name
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var fruit:XML = <fruit><name>Apple</name></fruit>; trace( fruit.name ); var author:XML = <author><name><firstName>Darron</firstName></name></author>; trace( author.name.firstName ); } }
}
</source>
Reading Elements in an XML Tree
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){
var menu:XML = <menu> <menuitem label="File"> <menuitem label="New"/> </menuitem> <menuitem label="Help"> <menuitem label="About"/> </menuitem> This is a text node </menu>; for each ( var element:XML in menu.elements( ) ) { trace( element.@label ); } var menu:XML = <menu> <menuitem label="File"> <menuitem label="New"/> </menuitem> <menuitem label="Help"> <menuitem label="About"/> </menuitem> This is a text node </menu>; walk( menu ); function walk( node:XML ):void { for each ( var element:XML in node.elements( ) ) { trace( element.@label ); walk( element ); } } } }
}
</source>
Reading Text Nodes and Their Values
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var book:XML = <book> <title>ActionScript</title> </book>; var title:String = book.title.toString( ); trace( title ); } }
}
</source>
Understanding the XML Classes
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var myXML:XML = <message>Hello, world!</message>;
// An XMLList is a numbered set of XML objects.
var list:XML = <list> <item id="58" /> <item id="135" /> <item id="12" /> </list>; var items:XMLList = list.item; trace(items); trace(items.length()); trace(items[1].toXMLString()); } }
}
</source>
Using Expressions within Literals: embed ActionScript code directly into your XML data.
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var squareLength:Number = 10; var circleRadius:Number = 5; var shapeData:XML = <shapeList> <shape type="square" size={squareLength} /> <shape type="cicle" size={circleRadius} /> </shapeList>; trace(shapeData.toXMLString()); } }
}
</source>