【问题标题】:Converting an XMLDocument to E4X in AS3?在 AS3 中将 XMLDocument 转换为 E4X?
【发布时间】:2016-07-31 07:14:24
【问题描述】:

我正在尝试将一些 AS2 XML 代码转换为 E4X。我在下面有以下代码原始 XML(现为 XMLDocument)语法:

//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() 函数。

【问题讨论】:

    标签: xml actionscript-3 e4x


    【解决方案1】:

    var myNode = &lt;myNodeName&gt;myValue&lt;/myNodeName&gt; 是您从字面上构建它所需的全部内容。如果您将内容作为字符串变量,则使用var myNode = &lt;myNodeName&gt;{yourVariable}&lt;/myNodeName&gt;

    【讨论】:

      【解决方案2】:

      例子:

          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
      

      【讨论】:

        猜你喜欢
        • 2011-01-13
        • 1970-01-01
        • 2011-01-25
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多