Actionscript3 E4X XML и CSS: Действительно ли мне нужно использовать CDATA?

#actionscript-3 #e4x #cdata

Вопрос:

При работе с CSS внутри XML, таких как

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

при анализе во flash, если я не использую CDATA, как показано ниже:

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

затем проанализированные данные опускаются вниз по строке для каждого »

При анализе данных в однострочном текстовом поле ничего не отображалось, потому что на самом деле оно было ниже строки. Как только я заворачиваю его внутрь CDATA , он отлично работает. Я играл с prettyIndent , и, как я понимаю ignoreWhite , это верно по умолчанию.

Есть ли способ проанализировать данные без использования CDATA и сохранить подразумеваемые разрывы строк?

ИЗМЕНИТЬ 1 (10/10/08): Спасибо, но на самом деле я ищу функцию или метод. Избежать каждого из них гораздо сложнее, чем использовать CDATA. Единственная причина, по которой я не хочу использовать CDATA, заключается в том, что меня учили держаться от этого подальше. Если у ActionScript есть метод, связанный с обработкой XML E4X, который устранит необходимость обертывания моего XML в CDATA, я хотел бы знать об этом.

ПРАВКА 1 (15.10.08): Спасибо, Филипп! Я никогда бы не подумал, что форматирование HTML во Flash рассматривается как пробелы. Ответ был таков:

 textField.condenseWhite = true;
 

<3AS3

Ответ №1:

Установите свойству TextField condenseWhite значение true — так что только теги < br/> будут генерировать разрывы строк.

Комментарии:

1. Большое спасибо, я никогда бы не подумал, что flash будет рассматривать <span class=»»> как пробел. Это сработало идеально! CDATA — ЭТО ЗЛО!

2. сам span не добавляет пробелы, но Flash автоматически переформатирует XML, когда он преобразуется в текст. Таким образом, узлы XML и текстовые элементы получают отступы — из этого отступа образуются дополнительные пробелы.

Ответ №2:

Вместо этого вы могли бы избежать символов » < » (и amp;, «, >, ‘, среди прочих) как сущностей.