Цитата:
Сообщение от _SoWa
В шаблонизаторе поправил, и все хорошо работает 
|
Ну вот и отлично)
В крайнем случае можно было сделать так (пусть теги, в которых могут храниться html-данные, перечислены в массиве htmlTags):

Код AS3:
//загруженные XML-данные
var xmlString:String = '<points>\n' +
' <add_point xy="133,190,lep" text="text"><P>someText<BR>moreText</P></add_point>\n' +
' <add_point/>\n' +
' <another_tag>another text</another_tag>\n' +
' <uru_ru text="ururu"><B>text</B><BR>text</uru_ru>\n' +
'</points>';
trace('"Плохой" XML:\n' + xmlString + '\n');
//список тегов, хранящих html-данные
var textTags:Array = ['add_point', 'uru_ru'];
xmlString = wrapHtml(xmlString, textTags);
trace('Исправленный XML:\n' + xmlString + '\n');
var xml:XML = XML(xmlString);
trace('Распарсенный XML:\n' + xml);
/**
* Помещает содержимое известных XML-тегов в тег CDATA.
*
* @param xmlString:String Нуждающиеся в корректировке XML-данные.
* @param tags:Array XML-теги, хранящие html-данные.
*
* @return Исправленные XML-данные.
*/
function wrapHtml(xmlString:String, tags:Array):String{
var cdater:RegExp = new RegExp('<(' + tags.join('|') + ')([^>\\/]*?)>(.*?)<\\/\\1>', 'gs');
return xmlString.replace(cdater, '<$1$2><![CDATA[$3]]></$1>');
}