2013-08-28 121 views
0
59  for (i=0; i < count; i++) //count = number of children 
60  { 
61  if (localXML.children()[i].Name.toString != firstName ¬ 
      && localXML.children()[i].Surname.toString != surName ¬ 
      && localXML.children()[i].Company.toString != companyName) 
62  { 
63   tempXML.appendChild(localXML.children()[i]); 
64  } 
65  trace("tempXML: --> "+tempXML); 
66  localXML = tempXML; <---- WRONG PLACE!!! 
67  } 

大家好。我在第61行收到#1010错误。Flash/AS3:错误#1010

我确实测试了每个值,并且每个人都被正常跟踪。的错误是:

  • 类型错误:错误#1010:在... frame9:61
  • 该脚本追加百达localXML.children()[0]再没有别的。

我看不到任何错误。任何想法?

在此先感谢。

解决:

59  for (i=0; i < count; i++) //count = number of children 
60  { 
61  if (localXML.children()[i].Name != firstName ¬ 
     && localXML.children()[i].Surname != surName ¬ 
     && localXML.children()[i].Company != companyName) 
62  { 
63   tempXML.appendChild(localXML.children()[i]); 
64  } 
65  } 
66  trace("tempXML: --> "+tempXML); 
67  localXML = tempXML; <---- MOVED HERE!!! 

我在每循环更新localXML!耻辱!!!

回答

1

检查XML。 localXML.children()[i]为空或Name不作为对象上的子节点存在。

还要记住,如果Name是XML中的一个属性,那么您需要以不同的方式访问它。

如果名称是设置这样的:

<node> 
    <Name>Stuff</Name> 
</node> 

那么你访问它,你已经这样做了。但是,如果它是一个属性,就像这样:

<node Name="stuff"></node> 

然后,你需要访问它是这样的:

localXML.children()[i][email protected] 

另一个可能的问题是children()电话。我以前从未使用过它,所以我不知道它是如何表现的。如果上述问题没有解决它,请尝试重写解析器以跳过children()调用,然后像通常使用嵌套循环一样解析它。

最后,尽管错误#1010意味着一个术语是未定义的并且不存在,所以您只需要弄清楚为什么它不存在。

+0

非常感谢乔希。我确实在for语句中放置了主XML(localXML = tempXML)的更新,并生成错误。我正确地调用节点。 (在这种情况下,我没有使用属性) – Sergio

相关问题