2009-12-08 160 views
1

如何將一個xml對象的值從一個xml對象複製到另一個空的xml對象。將XML數組從一個XML對象複製到另一個xml對象

我有一個來自xml數組的xml對象,需要將其複製到另一個xml對象。 如何從一個對象複製XML到另一個

如果我有解析XML對象 for循環和我得到的節點

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


} 

trace(myXML) 
+0

你使用as3還是as2?你的問題被標記爲兩者,但是這兩者之間的具體操作是完全不同的。 – grapefrukt 2009-12-08 09:11:07

+0

即時通訊問有關as3腳本 – coderex 2009-12-08 09:16:55

回答

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([email protected] == 'myProduct') 
     { 
      myXML.appendChild(productItem.copy()); 
     } 
    } 

    trace(myXML.toXMLString()) 
} 

我實例化與myXML VAR與XML文本,而不是把它當作新的XML(),因爲使用appendChild方法不能追加任何一個XML對象,直到它有一個頂級節點。

我很樂意在這段代碼中增加一點評論,如果這會有所幫助的話。請讓我知道。

2

嘗試類似:

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

如何只複製特定的孩子。 – coderex 2009-12-08 08:56:01

+0

然後使用var newXml:XML = new XML(xmlObj.product [i]); – longstaff 2009-12-08 09:32:37

+0

這隻會在xml是單個元素(例如一個根標記)時起作用,否則您需要開始使用xmlList對象,請參閱http://www.kirupa.com/developer/flashcs3/using_xml_as3_pg1.htm – longstaff 2009-12-08 09:36:14