Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Ler Xml Com Ajax


Guest --Andre --

Pergunta

Guest --Andre --

Pessoal, boa tarde!

Crie um código em Ajax para ler noticias em (.xml) FEEDS.

No IE está funcionando já no firefox ele não funciona.

a função que falha é a seguinte:

xmlDoc.load("http://www.itweb.com.br/centraldealertas/itweb_rss.asp?canal=home");

no IE ele pega 20 item e no firefox não pega nenhum.

Porque?

Existe outra forma de carregamento?

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Guest --Andre --

Ai galera estou postando o código para vocês.

Quem quiser estudar o caso ... estou pesquisando... porque não funciona no firefox.

Abc

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Teste Feed</title>

<script language="javascript" type="text/javascript">
<!--
var    navegador = navigator.appName;
var versao = navigator.appVersion;

function msXMLDOMDoc() {
    var versoes = [ "MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0",
        "MSXML2.DOMDocument.4.0"," MSXML2.DOMDocument.3.0",
        "MSXML2.DOMDocument"," Microsoft.XmlDom"
    ];

    for (var i = 0; i < versoes.length; i++) {
        try {
            var objXmlDom = new ActiveXObject(versoes[i]);
            return objXmlDom;
        } catch (erro) {
            //nada aqui

            }
        }
        throw new Error("MSXML não está instalado.");
    }

    if (window.ActiveXObject){
      xmlDoc = msXMLDOMDoc();
      xmlDoc.async=false; 
    }
    else if (document.implementation && document.implementation.createDocument){
      xmlDoc = document.implementation.createDocument("","",null);      
    }
           xmlDoc.load("http://www.itweb.com.br/centraldealertas/itweb_rss.asp?canal=home");

function mostrarLivros(){     

        var xmlNo = xmlDoc.getElementsByTagName('item');
        
        var tabela = document.createElement('TABLE');
        tabela.setAttribute('border',1);    
        tabela.setAttribute('cellPadding',0);
        tabela.setAttribute('cellSpacing',3);
        tabela.setAttribute('align','center');
        tabela.setAttribute('width',500);
        
        var elementoTBody = document.createElement('TBODY');    
        tabela.appendChild(elementoTBody);    
        
        var i;
        var iLinha;

        /*
        O tamanho do 1º for() será igual a quantidade de <item> em xml.
        
        Já no segundo vai depender das subInformações, por exemplo,
        <item>
            <title></title>
            <link></link>
            <description></description>
            <pubDate></pubDate>
        </item>
        
        Neste exemplo acima temos no 2º for() um tamanho de 3.
        */
        
    if(navegador == "Netscape"){
    
    alert("Quantidade de Nos " + xmlNo.length);
    
        for (i=0; i < xmlNo.length; i++){        
            var linha = document.createElement('TR');
            var elementoTd = document.createElement('TD');
        
        for (iLinha=0; iLinha < xmlNo[i].childNodes.length - 4; iLinha++){
            
            if (xmlNo[i].childNodes[iLinha].nodeType != 1){    continue; }    
            
            var dados = document.createTextNode(xmlNo[i].childNodes[2].firstChild.nodeValue);
            
            var url = document.createTextNode(xmlNo[i].childNodes[3].firstChild.nodeValue);
            
            elementoTd.setAttribute('align','center');
            
            var links = document.createElement('a');
            links.setAttribute('href',url.nodeValue);
            links.setAttribute('target','blank');
            
            links.appendChild(dados);        
            
            elementoTd.appendChild(links);
            
            linha.appendChild(elementoTd);
        }
        
        elementoTBody.appendChild(linha);        
        }
        
    }else{
        /* IE */
        alert("Quantidade de Nos " + xmlNo.length);
        
        for (i=0; i < xmlNo.length; i++){        
            var linha = document.createElement('TR');
            var elementoTd = document.createElement('TD');
        
        for (iLinha=0; iLinha < xmlNo[i].childNodes.length - 4; iLinha++){
        
            if (xmlNo[i].childNodes[iLinha].nodeType != 1){    continue; }    
            
            var dados = document.createTextNode(xmlNo[i].childNodes[1].firstChild.nodeValue);
            var url = document.createTextNode(xmlNo[i].childNodes[2].firstChild.nodeValue);
                        
            elementoTd.setAttribute('align','center');
            
            var links = document.createElement('a');
            links.setAttribute('href',url.nodeValue);
            links.setAttribute('target','blank');
            
            links.appendChild(dados);        
            
            elementoTd.appendChild(links);
            
            linha.appendChild(elementoTd);
            }
            
            elementoTBody.appendChild(linha);        
            }
    }

       if (document.all){
          document.all.mostrarTabela.innerHTML = "";
       }else{
         document.getElementsByTagName("*").mostrarTabela.innerHTML = "";
       }
    
     document.getElementById('mostrarTabela').appendChild(tabela);
}
-->
</script>
</head>

<body onload="mostrarLivros()">

<div align="center">Testando Rss</div><br /><br />

<div id="mostrarTabela"></div>

</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --André --

Boas pessoal,

Depois de muito pesquisar este script funciona perfeitamente para arquivos locais.

Para ler dinâmicamente através de um (http://) eu utilizei php e funcionou que foi uma beleza.

[]'s

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...