Я использую E4X в SpiderMonkey, и большинство из языка кажется довольно твердым, но я не могу получить фильтрации для работы:E4X фильтрация в Spidermonkey
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
В частности, я использую JSFL во Flash, в котором используется движок SpiderMonkey.
Из моих основных знаний о E4X до сих пор это довольно неожиданно/багги, не так ли? Поскольку я могу заставить эти выражения работать отлично в ActionScript/FlashPlayer!
Спасибо, Dave
Я ищу точно такое же решение. Я попробовал ваш образец кода, но он не работает. I get error "вход не определен. – tarekahf