2010-07-06 51 views
1

我记得之前做过,所以我想我在这里错过了一些东西。 XMLNode的nodeType属性仅支持ELEMENT_NODE和TEXT_NODE,并且如果我尝试将CDATA节作为字符串添加到XMLNode,它将会被转义。如何将CDATA节添加到Actionscript 3中的XMLDocument对象?

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

我得到的是下面的值TEXT_NODE:

& LT; [CDATA [一些文本和& LT ;标签& GT;!这里]] & gt;

这甚至不是一个TEXT_NODE

回答

0

它不会解析一个有效的值,你可能需要做的backway。

试用一个:添加节点的内容作为一个字符串

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 - >一些文本和大胆这里

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

如果我理解正确的话,你在谈论使用XML类,但这种方式我将会失去所有的XMLDocument和XMLNode功能吗? 您能否详细阐述一下“Trail two”解决方案? – Leeron 2010-07-06 12:01:10

+0

叶,这是正确的,如果你需要与AS2向后兼容,那么1将无法正常工作。 – phwd 2010-07-06 14:42:48