虽然我在解析传入的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循环!任何建议都非常感激。
答案 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>
我认为这正是你想要的,不是吗?除了一些示例输入之外,我没有更改您的代码。