
Uma dica para quem quer ler um arquivo XML através do JavaScript. Ao gerar o XML, não se esqueça de colocar no cabeçalho do arquivo o encoding que está sendo utilizado.
Sem isso o Internet Explorer não consegue ler o arquivo, fazendo com que o coitado do programador perca horas e vários fios de cabelo.
Segue um exemplo de cabeçalho de arquivo XML com o encoding:
<?xml version="1.0" encoding="ISO-8859-1"?>
Aproveitando para deixar outra dica.
Para carregar um XML e converter em String também temos diferença entre IE e Outros.
Internet Explorer:
docXML = new ActiveXObject("Microsoft.XMLDOM");
docXML.async = false;
docXML.load("arquivo.xml");
alert(docXML.xml);
Mozilla
docXML = document.implementation.createDocument('','',null);
docXML.async = false;
docXML.load("arquivo.xml");
alert((new XMLSerializer()).serializeToString(docXML))
Fontes:
[0] = http://www.w3schools.com/Xml/xml_parser.asp
[1] = http://www.hiteshagrawal.com/javascript/convert-xml-document-to-string-in-javascript
Nunca tive a necessidade de ler um XML do fileSystem da própria máquina do cliente com javascript - normalmente fazemos requisições assíncronas para ler do host que hospeda o site/aplicação, né? hehe
ResponderExcluirMas, outra vez o IE com as suas bizarrices...
Abraço!
Suas quatro primeiras palavras dizem tudo sobre o que me vem a mente quando tenho de testar algo no IE, eu mesmo já tive problema com IE por não saber como ele conseguia ler o arquivo xml. foi um bom post.
ResponderExcluirChris,
ResponderExcluirMas esse erro não acontece somente quando se lê um XML localmente. Se o XML estiver no servidor, o mesmo erro ocorre.
De qualquer forma, enche o saco esse IE.
Um abraço!