chc*_*ist 8 xml actionscript-3
我想检查每个子节点中是否存在此结构中的元素.问题是孩子们没有相同的名字(产品,预包装),我不想改变订单.另外,我无法更改XML结构.
<items>
<product>
<resourceImages>
<image />
</resourceImages>
</product>
<product>
<resourceImages>
<image />
</resourceImages>
</product>
<prepack>
<resourceImages />
</prepack>
<product>
<resourceImages>
<image />
</resourceImages>
</product>
<prepack>
<resourceImages />
</prepack>
</items>
Run Code Online (Sandbox Code Playgroud)
lou*_*ork 10
看来有两种方法,但使用undefined的检查似乎更可取.
if (item.image.length() > 0)
Run Code Online (Sandbox Code Playgroud)
要么
if (item.image != undefined)
Run Code Online (Sandbox Code Playgroud)
但请注意,无论节点是否存在,这始终都会为true.
if (item.image)
Run Code Online (Sandbox Code Playgroud)
考虑到未定义的检查,这很奇怪.
像这样?
for each(var item : XML in xmlData.children())
{
var hasImages : Boolean = (item.resourceImages.children().length() > 0);
if(hasImages)
trace("item has images")
}
Run Code Online (Sandbox Code Playgroud)
还取决于你的第一个循环,但你也可以检查节点是否undefined:
var xml:XML=<items>
<product>
<resourceImages>
<image />
</resourceImages>
</product>
<product>
<resourceImages>
<image />
</resourceImages>
</product>
<prepack>
<resourceImages />
</prepack>
<product>
<resourceImages>
<image />
<image />
</resourceImages>
</product>
<prepack>
<resourceImages />
</prepack>
</items>;
//loop on all all resourceImage node
for each (var resourceImageXML:XML in xml..resourceImages){
// and check if node if defined
if (resourceImageXML.image != undefined) {
// ok node have image
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13886 次 |
| 最近记录: |