代码之家  ›  专栏  ›  技术社区  ›  Sr.Richie

ReferenceError:错误#1065:按属性搜索节点时未定义变量

  •  0
  • Sr.Richie  · 技术社区  · 12 年前

    我已经做了很多次了,但现在我错过了一些东西。。。。 我通过在属性中查找值来搜索节点。

    如果我试图追踪:

     xmlQuestStructure.page[activePageIndex].label.@priority
    

    轨迹是可以的,我可以读取High、Medium、Low(我期望的值)。

    但如果我试图跟踪它(其中calculatedPriority是一个值为High、Medium或Low的字符串)

     xmlQuestStructure.page[activePageIndex].label.(@priority == calculatedPriority)
    

    我得到ReferenceError:错误#1065:未定义变量优先级

    我做错了什么? 谢谢你的帮助!

    1 回复  |  直到 12 年前
        1
  •  1
  •   BadFeelingAboutThis    12 年前

    很可能,您的问题是您的一个标签节点 没有 定义了优先级属性。当您使用 @ 在e4x中,如果涉及到没有指定属性的XML节点,它将抛出一个错误。

    如果您的XMLnode可能省略了该属性,那么不要使用“@”,而是使用 attribute()

    所以在你的情况下,你可以这样做:

    xmlQuestStructure.page[activePageIndex].label.(attribute("priority") == calculatedPriority);
    

    使用 属性() 更被动,如果节点没有指定的属性,则会忽略该节点,而不是抛出错误。