2010-07-06 50 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