Criei um arquivo ASP que lê um feed xml (no meu exemplo o do G1), e escreve exatamente o mesmo código XML lido na página.
O problema é que o XML escrito pelo ASP não consegue ser interpretado corretamente pelo Internet Explorer.
Ele acusa erro em um nó que contém uma palavra com ACENTO ("Notícias").
O problema é que se você pegar o código fonte do XML gerado e que o Internet Explorer acusa erro, copiar seu conteúdo, salvar em um arquivo XML e abrir no Internet Explorer ele lê.
Ou seja, o mesmo código quando gerado pelo ASP dá erro, mas se você copiar o código gerado, colar em um arquivo e abrir no IE, funciona.
Segue abaixo o código da minha página ASP que gera o XML.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%Option Explicit%>
<%Response.ContentType="application/xml"%>
<%Response.Charset="ISO-8859-1"%>
<%
function getStrXml(url)
'Esta sub retorna a string do XML lido
Dim objSrvHTTP, strXML, objXML, raiz, i, channel, itens
'Instancia o objeto HttpRequest.
Set objSrvHTTP = Server.CreateObject("MSXML2.XMLHTTP.3.0")
'Informe o método e a URL a ser capturada
objSrvHTTP.open "GET", url, false
'Com o método setRequestHeader informamos o cabeçalho HTTP
objSrvHTTP.setRequestHeader "Content-Type", "text/xml"
'O método Send envia a solicitação HTTP e exibe o conteúdo da página
objSrvHTTP.Send()
'Amazenamos o resultado na variável strXML
strXML = objSrvHTTP.ResponseXML.xml
'Instancia o objeto XMLDOM
Set objXML = Server.CreateObject("MSXML2.DOMDocument.4.0")
'Indicamos que o download em segundo plano não é permitido
objXML.async = false
'O método loadXML carrega parte do código, sem ter o documento XML
objXML.loadXML(strXML)
'Verifica possíveis erros com o método parseError
if objXML.ParseError.errorCode <> 0 then
response.write "Código do erro: " & objXML.parseError.errorCode & "<br>"
response.write "Posição no arquivo: " & objXML.parseError.filepos & "<br>"
response.write "Linha: " & objXML.parseError.line & "<br>"
response.write "Posição na linha: " & objXML.parseError.linepos & "<br>"
response.write "Descrição: " & objXML.parseError.reason & "<br>"
response.write "Texto que causa o erro: " & objXML.parseError.srcText & "<br>"
response.write "Url do arquivo com problemas: " & objXML.parseError.url
end if
'Destruíndo os objetos
Set objXML = Nothing
Set objSrvHTTP = Nothing
getStrXml = strXML
end function
Response.Write(getStrXml("http://g1.globo.com/Rss2/0,,AS0-5597,00.xml"))
%>
Pergunta
BRN Souza
Criei um arquivo ASP que lê um feed xml (no meu exemplo o do G1), e escreve exatamente o mesmo código XML lido na página.
O problema é que o XML escrito pelo ASP não consegue ser interpretado corretamente pelo Internet Explorer.
Ele acusa erro em um nó que contém uma palavra com ACENTO ("Notícias").
O problema é que se você pegar o código fonte do XML gerado e que o Internet Explorer acusa erro, copiar seu conteúdo, salvar em um arquivo XML e abrir no Internet Explorer ele lê.
Ou seja, o mesmo código quando gerado pelo ASP dá erro, mas se você copiar o código gerado, colar em um arquivo e abrir no IE, funciona.
Porque isso?
Links dos arquivos:
ASP gerando o XML (e dando erro): http://www.brninternet.com/testes/feedComErro.asp
Código colado na mão (funcionando): http://www.brninternet.com/testes/feedSemErro.asp
Segue abaixo o código da minha página ASP que gera o XML.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.