Porque é que este código E4X não respeitar o namespace padrão?
-
03-07-2019 - |
Pergunta
Eu estou cortando em torno de uma extensão do Firefox, tentando usar E4X. No entanto, eu me deparei com um problema estranho:
var myXml = <test xmlns="http://test.com">
Hey
<inner>
Guys
</inner>
</test>;
var ns = myXml.namespace();
default xml namespace = ns;
this.log(myXml.*::inner);
this.log(myXml.ns::inner);
this.log(myXml.inner);
As duas primeiras demonstrações registo de impressão "Caras". A terceira está em branco. O que está acontecendo? Eu especificado o namespace padrão, e é, de facto, os mesmos thingas exatas que estou usando no segundo declaração de registro. Por que isso não funciona?
Solução
No Firefox 3 o código é executado como o esperado. Talvez você topar com um bug encontrado na versão mais antiga do Gecko?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow