2008-10-09 9 views
0

Lorsque vous travaillez avec CSS à l'intérieur de XML tels queActionscript3 E4X XML et CSS: Dois-je vraiment utiliser CDATA?

<span class="IwuvAS3"></span> 

en flash lorsque analysé, si je ne l'utilise CDATA comme ce qui suit:

<![CDATA[<span class="IwuvAS3"></span>]]> 

alors les données analysées tombe en bas d'une ligne chaque caractère "<" qu'il voit.

Lors de l'analyse des données dans un champ de texte d'une seule ligne, rien n'a été affiché car il s'agissait en fait d'une ligne. Dès que je l'enveloppe à l'intérieur de CDATA cela fonctionne très bien. J'ai joué avec prettyIndent, et si je comprends bien ignoreWhite est vrai par défaut.

Existe-t-il un moyen d'analyser les données sans utiliser CDATA et de laisser la ligne implicite éclater?

EDIT 1 (10/10/08): Merci, mais je suis actuellement à la recherche d'une fonction ou méthode. Echapper à chacun est beaucoup plus lourd que d'utiliser CDATA. La seule raison pour laquelle je ne veux pas utiliser CDATA, c'est qu'on m'a appris à m'en tenir à l'écart. Si ActionScript a une méthode associée à la gestion XML E4X qui va supprimer l'obligation d'envelopper mon XML dans CDATA, j'aimerais bien le savoir.

EDIT 1 (15/10/08): Merci Philippe! Je n'aurais jamais pensé que le formatage HTML dans Flash est traité comme un espace. La réponse était

textField.condenseWhite = true; 

< 3AS3

Répondre

3

Set condenseWhite du TextField propriété à true - donc seulement < br /> tags générera des sauts de ligne

+0

Merci beaucoup, je n'aurais jamais pensé que flash traiterait les choses comme wh ite espace. Cela a fonctionné parfaitement! CDATA EST MAL! –

+0

span lui-même n'ajoute pas d'espace, mais Flash reformate automatiquement XML lorsqu'il est converti en texte. Les nœuds XML et les éléments de texte sont donc indentés - des espaces supplémentaires proviennent de cette indentation. – Philippe

0

Vous pouvez échapper aux caractères "<" (et &, »,>, », entre autres) comme des entités à la place.