将XML数组从一个XML对象复制到另一个xml对象

时间:2009-12-08 08:50:37

标签: flash actionscript-3 actionscript

如何将一个xml对象值从一个xml对象复制到另一个空xml对象。

我有一个来自xml数组的xml对象,需要将其复制到另一个xml对象。 如何将xml从一个对象复制到另一个对象

如果使用 for loop 解析 XML对象,我会得到节点

var myXML:xml = new xml();
for(...)
if(xmlObj.product[i].name == 'myproduct'){
  /// copy this to 'myXML' xml object .. how??


}

trace(myXML)

2 个答案:

答案 0 :(得分:2)

尝试类似:

var newXml:XML = new XML(oldXml.toXMLString());

答案 1 :(得分:2)

使用AS3的E4X功能,我可能会这样做。

private function copyMyProductXMLNodes():void
{
    var xmlObj:XML = <productList><product name="notMyProduct">product 1</product><product name="myProduct">product 2</product><product name="notMyProduct">product 3</product><product name="myProduct">product 4</product></productList>;
    var myXML:XML = <myProductList></myProductList>;

    for each(var productItem:XML in xmlObj.product)
    {
        if(productItem.@name == 'myProduct')
        {
            myXML.appendChild(productItem.copy());
        }
    }

    trace(myXML.toXMLString())
}

我使用XML文字实例化myXML var,而不是将其保留为新的XML(),因为appendChild方法在具有顶级节点之前不能将任何内容附加到XML对象。

我很乐意在此代码中添加更多评论,如果这样会有所帮助的话。请告诉我。