Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez convertir des objets XML et XMLList en valeurs String. De même, vous pouvez convertir des chaînes en objets XML et XMLList. Sachez que toutes les valeurs d’attribut, les noms et les valeurs de texte XML sont des chaînes. Les sections suivantes décrivent toutes ces formes de conversion de type XML.
Conversion d’objets XML et XMLList en chaînes
Les classes XML et XMLList contiennent les méthodes
toString()
et
toXMLString()
. La méthode
toXMLString()
renvoie une chaîne qui comprend la totalité des balises, des attributs, des déclarations d’espace de nom et du contenu de l’objet XML. Pour les objets XML ayant un contenu complexe (éléments enfant), la méthode
toString()
procède exactement comme la méthode
toXMLString()
. Pour les objets XML ayant un contenu simple (ceux qui contiennent un seul élément de texte), la méthode
toString()
renvoie uniquement le contenu de texte de l’élément, comme indiqué dans l’exemple suivant :
var myXML:XML =
<order>
<item id='1' quantity='2'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<order>;
trace(myXML.item[0].menuName.toXMLString());
// <menuName>burger</menuName>
trace(myXML.item[0].menuName.toString());
// burger
Si vous utilisez la méthode
trace()
sans spécifier
toString()
ou
toXMLString()
, les données sont converties à l’aide de la méthode
toString()
par défaut, comme indiqué dans le code suivant :
var myXML:XML =
<order>
<item id='1' quantity='2'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<order>;
trace(myXML.item[0].menuName);
// burger
Lorsque vous utilisez la méthode
trace()
pour déboguer un code, vous pouvez utiliser la méthode
toXMLString()
de façon à ce que la méthode
trace()
génère des données plus complètes.
Conversion de chaînes en objets XML
Vous pouvez utiliser le constructeur
new XML()
pour créer un objet XML à partir d’une chaîne, comme suit :
var x:XML = new XML("<a>test</a>");
Si vous tentez de convertir une chaîne en XML à partir d’une chaîne qui représente un XML non valide ou un XML qui n’est pas formé correctement, une erreur d’exécution est renvoyée, comme suit :
var x:XML = new XML("<a>test"); // throws an error
Conversion de valeurs d’attribut, de noms et de valeurs de texte à partir de chaînes
Toutes les valeurs d’attribut XML, les noms et les valeurs de texte sont des types de données String que vous pouvez convertir en d’autres types de données. Par exemple, le code suivant utilise la fonction
Number()
pour convertir des valeurs de texte en nombres :
var myXML:XML =
<order>
<item>
<price>3.95</price>
</item>
<item>
<price>1.00</price>
</item>
</order>;
var total:XML = <total>0</total>;
myXML.appendChild(total);
for each (var item:XML in myXML.item)
{
myXML.total.children()[0] = Number(myXML.total.children()[0])
+ Number(item.price.children()[0]);
}
trace(myXML.total); // 4.95;
Si ce code n’utilisait pas la fonction
Number()
, il interpréterait l’opérateur + comme l’opérateur de concaténation de chaîne, et la méthode
trace()
de la dernière ligne générerait les éléments suivants :
01.003.95
|
|
|