2016-07-31 31 views
0

我試圖將一些AS2 XML代碼轉換爲E4X。我有以下代碼原始XML(現XMLDocument)以下語法:在AS3中將XMLDocument轉換爲E4X?

//temp var used to access createElement and creatTextNode 
var tempXML:XML = new XML(); 

//make an element: <myNodeName> 
var myNode:XMLNode = tempXML.createElement("myNodeName"); 

//make a text node: "myValue" 
var myTextNode = tempXML.createTextNode("myValue"); 

//put the text node into the element: <myNodeName>myValue</myNodeName> 
myNode.appendChild(myTextNode); 

//test it 
trace(myNode.toString()); 

就相當於是什麼,如果我把它寫在E4X?

我特別希望重現E4X中的createElement()createTextNode()函數。

回答

1

實施例:

public function ASTest() 
    { 
     var xmlDocument:String = testXMLDocument(); 
     var e4x:String = testE4X(); 
     trace("xmlDocument: "+xmlDocument); 
     trace("e4x: "+e4x); 

     trace("assert true: " + (xmlDocument == e4x)); 
    } 

    public function testXMLDocument():String 
    { 
     //temp var used to access createElement and creatTextNode 
     var tempXML:XMLDocument = new XMLDocument(); 

     //make an element: <myNodeName> 
     var myNode:XMLNode = tempXML.createElement("myNodeName"); 

     //make a text node: "myValue" 
     var myTextNode:XMLNode = tempXML.createTextNode("myValue"); 

     //put the text node into the element: <myNodeName>myValue</myNodeName> 
     myNode.appendChild(myTextNode); 

     //test it 
     return myNode.toString();  
    } 

    public function testE4X():String 
    { 
     //make an element: <myNodeName> 
     var myNode:XML = <myNodeName />; 


     /** 
     * put the text node into the element: <myNodeName>myValue</myNodeName> 
     * Two options to achieve that: 
     * 1) using methods of XML class 
     * 2) using e4k operators 
     * Both ways give the same result 
     */ 

     //1) XML function usage: 
     //myNode.appendChild("myValue"); 

     //2) e4x syntax 
     myNode.* += "myValue"; 

     //test it 
     return myNode.toXMLString();   
    } 

輸出:

xmlDocument: <myNodeName>myValue</myNodeName> 
e4x: <myNodeName>myValue</myNodeName> 
assert true: true 
1

var myNode = <myNodeName>myValue</myNodeName>是你所需要的字面構造。如果您將內容作爲字符串變量,則使用var myNode = <myNodeName>{yourVariable}</myNodeName>