虽然解析传入的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循环的情况下工作!任何建议都非常感谢。
发布于 2010-11-15 16:33:07
我看不出有任何理由在这里使用替换,简单的赋值很好很清楚:
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);
}发布于 2010-11-15 18:11:04
我刚刚将此代码添加到一个空的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>我想这正是你想要的,不是吗?除了一些示例输入之外,我没有更改您的代码。
https://stackoverflow.com/questions/4180713
复制相似问题