Flash AS3 и XML: Способ исправления ломаков строки в HTMLText, который использует теги в XML?

StackOverflow https://stackoverflow.com/questions/3011948

  •  26-09-2019
  •  | 
  •  

Вопрос

Я импортирую текст в файле XML, и я использую HTMLText, чтобы попытаться сохранить некоторую стайлинг с тегами. У меня есть как обычный, так и смелый шрифт для лица, встроенный, а смелости отлично работает. Проблема заключается в том, что он рекламирует пробелы вокруг слов, жирных, таких как абзац, а затем делает линейный разрыв после них. Что происходит, есть ли способ исправить?

fromxmlText.htmlText = theXML.contenttext;

Если я вытянул текст из TXT-файла, он будет работать нормально, но выводит его из файла XML, вызывающего форматирование Funky. Lil 'Help?

Это было полезно?

Решение

Чтобы добавить HTML в XML, вы должны использовать CDATA Блоки, в противном случае HTML считается частью XML-документа.

например

<root>
    <someHtml><![CDATA[I can contain<br />html tags]]></someHtml>
    <somePlainText>I cannot contain html tags since they will be 
                   seen as XML nodes</somePlainText>
</root>

Также убедитесь, что вы сохраните файлы XML с концовками Line Unix и закодированы как UTF-8. Если вы используете окончания линии Windows (\r\n) Тогда вспышка имеет тенденцию к двойным пространствам. Ваш редактор должен позволить вам указать концовки строки.

Другие советы

Я импортировал динамический канал RSS в мою вспухшую рекламу, у которого есть HTML-теги встроены. У меня была такая же проблема. Я использовал Regex, чтобы найти и заменить. Вот функция, которую я использовал. Вы можете использовать мой код Regex, чтобы сделать то же самое. Похоже, у нас была такая же проблема. Надеюсь это поможет:

Функция Parserover_feature (ROVER_FEATURE: XML): void {

var s:String = rover_feature.items.item[0].article;
s = s.replace(/(?:<br>)+/gi, '<br>');
s = s.replace(/\n/g, '');
container.info_txt.htmlText = s
//trace (s);

}

Трудно сказать, не видя вашего XML, но попробуйте возиться с Глобальные свойства XML особенно LightoreWhiteSpace. Отказ В зависимости от ваших линейных окончаний вам также может потребоваться распределить их перед тем, как поместить текст в текстовое поле.

Если вы встраиваетесь от XML, то убедитесь, что вы используете теги CDATA, чтобы показать предварительный код, в противном случае вы выводят содержимое нескольких узлов в XML.

видеть W3 школы для получения дополнительной информации.

Также убедитесь, что ваше текстовое поле установлено на multiline Прежде чем установить ваш TextField.htmltext = XML с
т.е.

var myText:TextField = new TextField();
myText.multiline = true;
myText.htmlText = (your xml node with the <br/ >);
addChild(myText);

Надеюсь это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top