2009-11-03 2 views
0

J'utilise e4x pour générer un HTML bout pour mes utilisateurs qu'ils peuvent copier & coller dans leurs blogs ou sites web:Comment fermer des éléments HTML-way avec XML généré par e4x?

var xml: XML = <object> 
        <param name="..."></param> 
        <param name="..."></param> 
        <embed args="..."></embed> 
       </object>; 
var html: String = xml.toXMLString(); 

cependant, les étiquettes sans éléments enfants sont fermés avec la plus courte <embed/> - variante plutôt que <embed></embed> dans la chaîne HTML de sortie, ce qui provoque des problèmes lorsque le code est collé dans par exemple l'éditeur de Blogger.

Existe-t-il un moyen de forcer la façon de fermer les balises au format HTML ou existe-t-il une bonne solution de contournement? Mettre des commentaires entre <embed> et </embed> ne semble pas fonctionner ..

Répondre

1

Représenter du HTML dans des objets XML ne semble pas être une bonne idée ici. L'extrait HTML ne sera traité que comme du texte: vous ne ferez aucune opération XML dessus.
Juste le construire directement comme une chaîne. De cette façon, il est formaté exactement comme vous le souhaitez, vous pouvez inclure des commentaires, ...

Si vous le voulez vraiment, vous pouvez le faire sortir une étiquette de fermeture séparée avec l'objet XML en s'assurant que le contenu de cet élément xml n'est pas vide. Vous ne voulez pas de texte réel entre le texte, mais juste un espace suffirait. Dans Flex (je ne connais pas d'autres implémentations d'actionscript), vous devrez probablement définir XML.ignoreWhitespace sur false pour que cela fonctionne.

+0

Merci, XML.ignoreWhiteSpace = false a fait l'affaire! Cependant, je vais probablement réécrire en utilisant des chaînes, mais bon à savoir pour plus tard. –

Questions connexes