2016-07-31 32 views
0

Ich versuche, einige AS2 XML-Code zu E4X zu konvertieren. Ich habe den ursprünglichen XML folgenden Code (jetzt XMLDocument) Syntax unter:Konvertieren eines XMLDocument in E4X in AS3?

//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()); 

Was das Äquivalent wäre, wenn ich es in E4X schreiben waren?

Ich bin speziell auf die Wiedergabe der createElement() und createTextNode() Funktionen in E4X.

Antwort

1

Beispiel:

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();   
    } 

Output:

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

var myNode = <myNodeName>myValue</myNodeName> ist alles, was Sie brauchen, um das buchstäblich zu konstruieren. Wenn Sie den Inhalt als Stringvariable haben, verwenden Sie var myNode = <myNodeName>{yourVariable}</myNodeName>.