Как добавить раздел CDATA к объекту XMLDocument в Actionscript 3? - PullRequest
1 голос
/ 06 июля 2010

Я помню, как делал это раньше, так что, думаю, я что-то здесь упускаю.Свойство XMLNode nodeType поддерживает только ELEMENT_NODE и TEXT_NODE, и если я пытаюсь добавить раздел CDATA в XMLNode в виде строки, которую он экранирует.

var node:XMLNode = new XMLNode(3, "<![CDATA[some text and <tags> here]]>");

Я получаю TEXT_NODE со следующим значением:

<;! [CDATA [некоторый текст и <; теги>;здесь]]>;

, что даже не является допустимым значением для TEXT_NODE

1 Ответ

0 голосов
/ 06 июля 2010

Он не будет анализироваться, вам может понадобиться обратный ход.

Пробный : добавьте содержимое вашего узла в виде строки

var sometext:String = 'some text and <tags> here';

добавьтепусто XMLNode в ваш документ и затем используйте xml.replace

xml.replace('blanknode','<blanknode><![CDATA[' + sometext + ']]></blanknode>');

Пробная версия 2 : вернуть его из функции XML возвращаемого типа в XMLNode

Обновление

var sometext:String = 'some text and <b>bold</b> here';
        var nodeblank:XMLNode = new XMLNode(1,insert(sometext));
        trace(nodeblank);


        var txt:TextField = new TextField();
        txt.htmlText = nodeblank.nodeName;
        addChild(txt);

Это показывает в TextField -> некоторый текст и полужирный здесь

public function insert(s:String):XML {
            var x:XML = new XML("<![CDATA[" + s + "]]>");
            return x;
    }
...