Conversion de type XML

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 XML, les noms et les valeurs de texte sont des chaînes. Les sections suivantes décrivent toutes ces formes de conversion de type XML.

Sous-rubriques

Conversion d'objets XML et XMLList en chaînes
Conversion de chaînes en objets XML
Conversion de valeurs d'attribut, de noms et de valeurs de texte à partir de chaînes

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 toutes les balises, les attributs, les déclarations d'espace de nom et le contenu de l'objet XML. Pour les objets XML ayant un contenu complexe (éléments enfants), 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"); // renvoi d'une erreur

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.35;

Si ce code n'utilisait pas la fonction Number(), le code interpréterait l'opérateur + comme l'opérateur de concaténation de chaîne, et la méthode trace() dans la dernière ligne génèrerait les éléments suivants :

01.003.95

Flash CS3

 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/main/00000131.html