【问题标题】:ActionScript 3.0 adding node to XMLActionScript 3.0 将节点添加到 XML
【发布时间】:2011-08-04 14:38:33
【问题描述】:

我有

<myXML>
</myXML>

使用

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

我明白了

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

但是如果'text'实际上是包含在字符串变量中的东西,该怎么做呢?那么如何添加具有一些以编程方式生成的内容的子节点?

所以我有:

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

我想做类似的事情

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

怎么做?

【问题讨论】:

    标签: xml actionscript-3


    【解决方案1】:

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

    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>)
    

    【讨论】:

    • 哦,太好了 - 谢谢!如果我的字符串包含 '' 怎么办?
    • @Mat 我已经更新了答案。如果您有其他问题,您应该接受其中一个答案,然后打开一个新答案。
    【解决方案2】:

    你非常接近 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);
    

    【讨论】:

    • mmmh - 但如何做到这一点,结果将是&lt;myXML&gt;&lt;bla&gt;Hello World&lt;/bla&gt;&lt;/myXML&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多