我使用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
具體來說,我在Flash中使用JSFL,它使用SpiderMonkey引擎。
從我迄今爲止對E4X的基本知識來看,這是相當意想不到的/錯誤的,對嗎?因爲我可以讓這些表達式在ActionScript/FlashPlayer中正常工作!
謝謝, 戴夫
我正在尋找完全相似的解決方案。我試過你的示例代碼,但它不工作。我得到錯誤「輸入未定義。 – tarekahf 2018-02-05 18:57:41