私は 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
具体的には、SpiderMonkey エンジンを使用する Flash で JSFL を使用しています。
これまでの E4X に関する私の基本的な知識からすると、これはかなり予想外/バグだらけですよね? これらの式を ActionScript / FlashPlayer で問題なく動作させることができます。
ありがとう、デイブ