0

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

如果我尝试追踪:

 xmlQuestStructure.page[activePageIndex].label.@priority

跟踪没问题,我可以读取高、中、低(我期望的值)。

但是,如果我尝试跟踪这一点(其中计算的优先级是一个值为 High、Medium 或 Low 的字符串)

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

我得到 ReferenceError: Error #1065: Variable priority is not defined

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

4

1 回答 1

1

最有可能的是,您的问题是您的标签节点之一没有定义优先级属性。在 e4x 中使用@时,如果涉及到没有指定属性的 XML 节点,它将引发错误。

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

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

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

usingattribute()更被动,如果它没有指定的属性,它将忽略节点,而不是抛出错误。

于 2012-09-25T17:41:47.787 回答