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

Xml ReferenceError:Error#1065:按属性搜索节点时未定义变量,xml,actionscript-3,flash,apache-flex,e4x,Xml,Actionscript 3,Flash,Apache Flex,E4x,我已经做了很多次了,但现在我错过了一些东西。。。。 我通过在属性中查找值来搜索节点 如果我尝试跟踪: xmlQuestStructure.page[activePageIndex].label.@priority 跟踪结果正常,我可以读取高、中、低(我期望的值) 但如果我尝试跟踪它(其中calculatedPriority是一个值为High、Medium或Low的字符串) I get ReferenceError:错误#1065:未定义变量优先级 我做错了什么? 谢谢你的帮助 最可能的问题是

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

如果我尝试跟踪:

 xmlQuestStructure.page[activePageIndex].label.@priority
跟踪结果正常,我可以读取高、中、低(我期望的值)

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

I get ReferenceError:错误#1065:未定义变量优先级

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

最可能的问题是,您的一个标签节点没有定义优先级属性。在e4x中使用@时,如果遇到未指定属性的XML节点,则会抛出错误

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

因此,在您的情况下,您可以这样做:

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

使用
attribute()。我刚刚发现了问题所在,我尝试使用attribute方法,但我不知道我可以按照你说的那样进行查询!真棒
xmlQuestStructure.page[activePageIndex].label.(attribute("priority") == calculatedPriority);