正如标题所说,假设我有一个假设的XML包含这个:
<dialogue>
<bg>1</bg>
<speech>Oh, what a nice bg1.</speech>
</dialogue>
<dialogue>
<playsnd>lala.wav</playsnd>
<speech>Still same bg, but now a sound is played!.</speech>
</dialogue>
我正在用for循环阅读它:
for (i=0; i<loop; i++)
{
speeches[i] = xmlData.script.dialogue[i].speech;
bgs[i] = Number(xmlData.script.dialogue[i].bg);
sounds[i] = xmlData.script.dialogue[i].playsnd;
}
我可以通过简单地执行此操作来检查某个演讲是否有bg更改:
if(bgs[i])
{
//true!
}
但我不知道在声音的情况下我应该比较什么,我尝试了很多,比如:
if(sounds[i])
if(sounds[i] != null)
if(sounds[i] != "")
if(sounds[i] != " ")
但没有任何作用......那么声音[0]会包含哪些XML示例?提前谢谢!
答案 0 :(得分:1)
你应该检查undefined。
答案 1 :(得分:1)
xmlData.script.dialogue[i].playsnd
会为您提供XMLList
类型的值,该列表包含所有<playsnd>
元素。您想检查该列表是否为空(即包含零元素),所以:
if(sounds[i].length() != 0)
// do whatever
修改:如果您只有一个<playsnd>
元素,那么从循环中的XMLList
抓取第一个项目可能更有意义:
for(...)
{
...
sounds[i] = xmlData.script.dialogue[i].playsnd[0];
}
然后你可以检查null,它会按照你期望的方式工作:
if(sounds[i] != null)
// do whatever