ActionScript 3.0中添加节点XML
问题描述:
<myXML>
</myXML>
使用
myXML.appendChild(<bla>text</bla>);
我得到
<myXML>
<bla>text</bla>
</myXML>
,但如何做到这一点,如果 '文本' 实际上是包含在一个什么东西字符串变量?那么我如何添加一个具有一些编程生成内容的子节点?
,所以我有:
var myXML:XML = <myXML><myXML>
var myString:String = "Hello World"
我想要做这样的事情
myXML.appendChild(<bla>mySring</bla>);
如何做到这一点?
答
您还可以使用{}
符号:
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>)
答
你非常接近垫,只是缺少一个节点追加到:
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);
+0
mmmh - 但如何做到这一点这样的结果将是'
+0
@Mat更新回答:) – 2011-04-13 11:01:59
这很酷!我不知道,谢谢:) – 2011-04-13 13:20:40
哦,这太好了 - 谢谢!如果我的字符串包含'',怎么做? – Mat 2011-04-13 13:37:00
@Mat我已经更新了答案。如果你有其他问题,你应该接受其中一个答案,然后打开一个新答案。 – Patrick 2011-04-13 14:09:37