ActionScript 3.0将节点添加到XML

时间:2011-04-13 10:47:51

标签: xml actionscript-3

我有

<myXML>
</myXML>

使用

myXML.appendChild(<bla>text</bla>);

我得到了

<myXML>
  <bla>text</bla>
</myXML>

但如果&#39; text&#39;实际上是包含在字符串变量中的东西?那么我如何添加一个具有一些以编程方式生成的内容的子节点呢?

所以我有:

var myXML:XML = <myXML><myXML>
var myString:String = "Hello World"

我想做类似

的事情
myXML.appendChild(<bla>mySring</bla>);

怎么做?

2 个答案:

答案 0 :(得分:8)

您还可以使用{}表示法:

var myXML:XML = <myXML/>
var myString:String = "Hello World"
//...
myXML.appendChild(<bla>{myString}</bla>)

更新1:

如果要在字符串中使用CDATA,可以将其转换为XML节点,然后将其添加到当前的XML中:

var myXML:XML = <myXML/>
var myString:String = "<![CDATA[Hello World]]>"
//...
myXML.appendChild(<bla>{new XML(myString)}</bla>)

答案 1 :(得分:1)

你非常接近Mat,只是缺少一个要追加的节点:

var myString:String = 'Hello World';
//this does not work
//var xml:XML = <myXML>myString</myXML>; 
//this works
var myXML:XML = <myXML />.appendChild(myString);
//test
trace(myXML,myXML.toXMLString());

如果存储在myString中的值直接进入XML声明,而不需要appendChild,那就太好了。

使用额外节点(bla),只需将字符串变量附加到该节点:

var myString:String = 'Hello World';
var myXML:XML = <myXML><bla /></myXML>;
myXML.bla.appendChild(myString);
//test
trace(myXML);