1 votes

Comment ajouter une section CDATA à un objet XMLDocument dans Actionscript 3 ?

Je me souviens l'avoir fait avant, donc je suppose que je rate quelque chose ici. La propriété nodeType de XMLNode ne prend en charge que ELEMENT_NODE et TEXT_NODE, et si j'essaie d'ajouter la section CDATA au XMLNode sous forme de chaîne, elle est échappée.

var node:XMLNode = new XMLNode(3, "<![CDATA[some text and <tags> here]]>");

Ce que j'obtiens est un TEXT_NODE avec la valeur suivante :

< ; ![CDATA[un peu de texte et < ;balises> ; ici]]> ;

qui n'est même pas une valeur valide pour un TEXT_NODE

0voto

phwd Points 12493

Il ne sera pas analysé, vous aurez peut-être besoin d'une autre méthode pour le faire.

Premier essai : ajoutez le contenu de votre nœud sous forme de chaîne

var sometext:String = 'some text and <tags> here';

ajouter une page blanche XMLNode à votre document, puis utilisez xml.replace

xml.replace('blanknode','<blanknode><![CDATA[' + sometext + ']]></blanknode>');

Deuxième essai : le renvoyer d'un XML dans la fonction de type de retour XMLNode

Mise à jour

var sometext:String = 'some text and <b>bold</b> here';
        var nodeblank:XMLNode = new XMLNode(1,insert(sometext));
        trace(nodeblank);

        var txt:TextField = new TextField();
        txt.htmlText = nodeblank.nodeName;
        addChild(txt);

Cela se voit dans le TextField -> un texte et en gras aquí

public function insert(s:String):XML {
            var x:XML = new XML("<![CDATA[" + s + "]]>");
            return x;
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X