as3创建xml基本问题

时间:2010-11-15 01:17:01

标签: xml flash actionscript-3 appendchild

虽然我在解析传入的XML时没有问题,但我似乎无法构造有效的传出xml。这是我的代码:

   myXML =
   <INFO>
   <imgname>testimage.jpg</imgname>
   <totalCols>{totalCols}</totalCols>
   </INFO>;

//到目前为止的XML跟踪了所需的输出,当我尝试使用for循环追加出现问题时:

for (var i:Number = 0; i<totalCols; i++)
   {
    var tags:XML = 
    <tags>
    <tagx> {tagDisplay[i].x} </tagx>
    <tagy> {tagDisplay[i].y} </tagy>
    <tagtext> {tagDisplay[i].tagTxt.text} </tagtext>
    </tags>;

    myXML.appendChild(tags);
   }

我想要的输出是:

    <INFO>
    <imgname>testimage.jpg</imgname>
    <totalCols>7</totalCols>
//for loop kicks in here:
    <tags>
    <tagx>100</tagx>
    <tagy>100</tagy>
    <tagtext>tag1</tagtext>
    </tags>
    <tags>
    <tagx>120</tagx>
    <tagy>120</tagy>
    <tagtext>tag2</tagtext>
    </tags>
...etc for the total number in the for loop.
    </INFO>

我知道这很简单,但我的代码似乎不适用于包含的for循环!任何建议都非常感激。

2 个答案:

答案 0 :(得分:1)

我看不出在这里使用替换的任何理由,简单的任务很好而且清晰:

for (var i:Number = 0; i < totalCols; i++) {
    var tags:XML = <tags></tags>;
    tags.tagx    = tagDisplay[i].x;
    tags.tagy    = tagDisplay[i].y;
    tags.tagtext = tagDisplay[i].tagTxt.text;
    myXML.appendChild(tags);
}

答案 1 :(得分:1)

我刚刚将此代码添加到空FLA中:

var totalCols:Number = 4;
var tagDisplay:Array = [
    {x:0, y:0, tagTxt:{text:"stuff"}},
    {x:0, y:0, tagTxt:{text:"stuff"}},
    {x:0, y:0, tagTxt:{text:"stuff"}},
    {x:0, y:0, tagTxt:{text:"stuff"}}
];

var myXML:XML =
   <INFO>
   <imgname>testimage.jpg</imgname>
   <totalCols>{totalCols}</totalCols>
   </INFO>;

for (var i:Number = 0; i<totalCols; i++)
{
    var tags:XML = 
    <tags>
    <tagx> {tagDisplay[i].x} </tagx>
    <tagy> {tagDisplay[i].y} </tagy>
    <tagtext> {tagDisplay[i].tagTxt.text} </tagtext>
    </tags>;

    myXML.appendChild(tags);
}

trace(myXML);

我得到的回应是:

<INFO>
  <imgname>testimage.jpg</imgname>
  <totalCols>4</totalCols>
  <tags>
    <tagx>0</tagx>
    <tagy>0</tagy>
    <tagtext>stuff</tagtext>
  </tags>
  <tags>
    <tagx>0</tagx>
    <tagy>0</tagy>
    <tagtext>stuff</tagtext>
  </tags>
  <tags>
    <tagx>0</tagx>
    <tagy>0</tagy>
    <tagtext>stuff</tagtext>
  </tags>
  <tags>
    <tagx>0</tagx>
    <tagy>0</tagy>
    <tagtext>stuff</tagtext>
  </tags>
</INFO>

我认为这正是你想要的,不是吗?除了一些示例输入之外,我没有更改您的代码。