Vous pouvez affecter un littéral XML à un objet XML, comme suit :
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>
Comme indiqué dans le code suivant, vous pouvez également utiliser le constructeur
new
pour créer une occurrence d’un objet XML à partir d’une chaîne contenant des données XML :
var str:String = "<order><item id='1'><menuName>burger</menuName>"
+ "<price>3.95</price></item></order>";
var myXML:XML = new XML(str);
Si les données XML dans la chaîne ne sont pas bien formées (par exemple, s’il manque une balise de fin), une erreur d’exécution se produit.
Vous pouvez également transmettre des données par référence (à partir d’autres variables) dans un objet XML, comme indiqué dans l’exemple suivant :
var tagname:String = "item";
var attributename:String = "id";
var attributevalue:String = "5";
var content:String = "Chicken";
var x:XML = <{tagname} {attributename}={attributevalue}>{content}</{tagname}>;
trace(x.toXMLString())
// Output: <item id="5">Chicken</item>
Pour charger des données XML depuis une URL, utilisez la classe URLLoader, comme indiqué dans l’exemple suivant :
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
var externalXML:XML;
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("xmlFile.xml");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
function onComplete(event:Event):void
{
var loader:URLLoader = event.target as URLLoader;
if (loader != null)
{
externalXML = new XML(loader.data);
trace(externalXML.toXMLString());
}
else
{
trace("loader is not a URLLoader!");
}
}
Pour lire des données XML depuis une connexion de socket, utilisez la classe XMLSocket . Pour plus d’informations, voir la
classe XMLSocket
dans le manuel
Guide de référence ActionScript 3.0 pour la plate-forme Adobe Flash
.