Por que meus navegadores exibem arquivos XML como páginas em branco?

7

Toda vez que eu abro um arquivo XML, tudo que eu vejo é uma página em branco em vez da árvore de tags. O arquivo em si está correto e carrega bem, eu posso ver via View Source ou no Firebug. Eu tentei desligar todos os meus addons e tentei executar o Firefox em modo de segurança, mas o problema não foi resolvido.

Eu estou supondo que eu estraguei minha configuração de alguma forma e agora o Firefox tenta renderizar arquivos XML como HTML. Eu tentei googling, mas sem sucesso. Ajuda, por favor?

UPD: arquivo de exemplo: link Também notei que, de alguma forma, todos os navegadores da máquina estão agindo da mesma forma, então estou alterando a questão de acordo

    
por n1313 12.05.2010 / 10:34

6 respostas

3

Se o arquivo XML estiver malformado, o navegador não saberá o que fazer com ele e, na minha experiência, não mostrará nada.

Se o arquivo XML for valid , a maioria dos navegadores (IE8, Chrome e Firefox) enviará uma mensagem como This XML file does not appear to have any style information associated with it. The document tree is shown below. e entrará em um modo especial para mostrar arquivos XML com recursos como recolher os blocos de códigos.

Veja aqui: XML Validator

    
por 16.05.2011 / 14:58
3

Acabei de receber e resolvi um problema semelhante: do meu aplicativo ASP.NET MVC, tenho um controlador que retorna XML bruto que desejo ver no navegador da Web como uma árvore DOM.

O Chrome faz isso bem, mas o IE 11 simplesmente mostra uma página em branco.

O problema parece ser o cabeçalho HTTP "Content-Type": se ele não contém um valor charset, o IE simplesmente mostra uma página em branco (a menos que você tenha um cabeçalho Content-Disposition, caso em que o IE oferece você salvar o XML).

Portanto, a seguinte resposta HTTP está correta para o Chrome, mas o IE mostra uma página em branco:

HTTP/1.1 200 OK
Cache-Control: private, s-maxage=0
Content-Type: application/xml
Server: Microsoft-IIS/8.0
Date: Fri, 25 Jul 2014 14:29:02 GMT
Content-Length: 693

<?xml version="1.0" encoding="utf-16"?><data>...</data>

Observação: certifique-se de fornecer o comprimento de conteúdo correto, embora eu não tenha testado o que acontece se o cabeçalho Content-Length estiver faltando ou se tiver um valor incorreto. Além disso, removi os cabeçalhos X gerados pelo IIS a partir dessa impressão, mas é seguro deixá-los.

Mas o seguinte funciona no IE e no Chrome :

HTTP/1.1 200 OK
Cache-Control: private, s-maxage=0
Content-Type: application/xml; charset=utf-8
Server: Microsoft-IIS/8.0
Date: Fri, 25 Jul 2014 14:29:02 GMT
Content-Length: 693

<?xml version="1.0" encoding="utf-16"?><data>...</data>

A única diferença é a adição de ; charset=utf-8 no cabeçalho Content-Type.

Para desenvolvedores ASP.NET MVC, isso significa que, se você deseja renderizar XML bruto e suportar o IE, não poderá usar:

string xmldata = ...
return this.File(Encoding.UTF8.GetBytes(xmldata), "application/xml");

Em vez disso, os seguintes trabalhos:

string xmldata = ...
Response.ContentType = "application/xml";
Response.ContentEncoding = Encoding.UTF8;
Response.AddHeader("Content-Length", Convert.ToString(xmldata.Length));
return this.Content(xmldata);

Atenciosamente.

    
por 25.07.2014 / 17:14
0

Isso é específico para o Firefox, mas eu acho que vale a pena:

Vá para Ajuda \ Informações para solução de problemas no menu Firefox e clique no botão para abrir a pasta de conteúdo do seu perfil.

Faça o backup e exclua o arquivo mimeTypes.rdf, feche todas as instâncias do Firefox e abra o Firefox novamente.

Isso forçará o FF a gerar novamente as ações padrão para os tipos MIME que ele conhece, isso pode corrigir o problema se for causado por algo estranho que o FF está fazendo.

    
por 16.05.2011 / 14:47
0

Se você estiver carregando o XML de um servidor, precisará definir o tipo de contexto do cabeçalho como text / xml.

Por exemplo, no PHP você precisa colocar isso à frente da sua saída de texto:

header("Content-type: text/xml");
    
por 18.06.2011 / 01:59
0

O xml tem uma tag no topo semelhante a essa?

<?xml version="1.0"?>

Isto irá preparar o navegador para que ele saiba o que fazer.

    
por 25.08.2011 / 21:19
0

Além do que os outros escreveram, alguns / muitos webbrowsers não podem renderizar arquivos xml escritos de acordo com o padrão XML 1.1

O Firefox mostrará uma mensagem de erro apontando para a versão 1.1 no prólogo xml.

<?xml version="1.1"?>
---------------^

O Internet Explorer mostrará apenas uma página em branco.

Se você é um desenvolvedor de software, esteja ciente de que a falta de suporte ao XML 1.1 não se limita apenas aos navegadores da web. Também há falta de suporte para o XML 1.1 em muitas linguagens de programação. (ou seja, o analisador DOM padrão do Java 8 não suporta XML 1.1). Você pode preferir manter a versão 1.0 do XML, se tiver uma opção.

Você poderia, é claro, tirar o prólogo do seu arquivo xml. Mas isso nem sempre funciona. (isto é, os nós xml podem conter alguns caracteres de controle específicos, que foram proibidos na versão 1.0).

    
por 22.05.2017 / 16:35

Tags