【发布时间】:2011-09-13 05:00:18
【问题描述】:
我在 SpiderMonkey 中使用 E4X,大部分语言看起来都相当可靠,但我无法让过滤工作:
var xml = <root>
<person id="dave">Dave</person>
<person id="ian">Ian</person>
<person>John</person>
</root>
trace( xml.*.(name() == 'person') );
trace( xml.*.(attribute('@id')) );
预期:
<person id="dave">Dave</person>
<person id="ian">Ian</person>
<person>John</person>
<person id="dave">Dave</person>
<person id="ian">Ian</person>
结果:
ReferenceError: name is not defined
ReferenceError: attribute is not defined
我什至无法让 hasOwnProperty() 工作:
xml.*.(trace( hasOwnProperty('@id') ));
false
false
false
具体来说,我在 Flash 中使用 JSFL,它使用 SpiderMonkey 引擎。
从我目前对 E4X 的基本了解来看,这是非常出乎意料/错误的,对吧?因为我可以让这些表达式在 ActionScript / FlashPlayer 中正常工作!
谢谢, 戴夫
【问题讨论】:
标签: e4x spidermonkey jsfl