如何在Actionscript 3中向XMLDocument对象添加CDATA部分?

时间:2010-07-06 09:45:28

标签: xml actionscript-3 cdata

我记得以前这样做过,所以我想我在这里错过了一些东西。 XMLNode的nodeType属性仅支持ELEMENT_NODE和TEXT_NODE,如果我尝试将CDATA部分作为字符串添加到XMLNode,它将被转义。

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

我得到的是一个TEXT_NODE,其值如下:

  

&amp; lt;![CDATA [some text and&amp; lt   ;标签&amp; gt;这里]]&amp; gt;

甚至不是TEXT_NODE的有效值

1 个答案:

答案 0 :(得分:0)

它不会解析,你可能需要这样做的后台。

试用一次:将您的节点内容添加为字符串

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

在文档中添加空白XMLNode,然后使用xml.replace

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

试用二:将其从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 - &gt;一些文字和粗体这里

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