Ir ao conteúdo

Posts recomendados

Postado

   Olá, estou fazendo uso do xml das lojas que integram a lomadee para atualizar os preços no meu site, mas nem sempre os produtos estão disponiveis, e quando isso acontece simplesmente não aparece nada no local em que deveria aparecer o preço. Gostaria de saber como adicionar uma mensagem de "produto indisponivel" para quando não haver o preço no xml.

 

Exemplo do XML.

<offer categoryId="3482" id="118938637" productId="1850140124">
<offerName>
Diablo III - Ordem de Nate Kenyon - Kenyon, Nate ( 9788501401243 )
</offerName>
<sku>4259998</sku>
<offerShortName>Diablo Iii Ordem</offerShortName>
<links>
<linkurl="http://links.lomadee.com/ls/of/Y249R354ODttZHNyYz0zNTIxMjc0NTtlbXBfaWQ9MTU1O21kYXBwPTU3OTg7cHJvZF9pZD0xMTg5Mzg2Mzc7eGxrPWh0dHA6Ly93d3cuc2FyYWl2YS5jb20uYnIvcHJvZHV0by80MjU5OTk4Lz9wYWNfaWQ9MzAzOTMmdXRtX3NvdXJjZT1sb21hZGVlJnV0bV9tZWRpdW09YWZpbGlhZG8mdXRtX2NhbXBhaWduPWNwY19MaXZyb3MtNDI1OTk5OF8zMDM5Mztjb3VudHJ5PUJSO2h0PTk4Nzg3YjA2ZDdkMmZmZjRmMzk0Y2Q4NzVjNTNjYTljO21kZHRuPTA-.html"type="offer"/>
</links>
<thumbnail url="http://thumbs.buscape.com.br/T100x100/__2.155-716dc0d.jpg"/>
<price>
<currency abbreviation="BRL"/>
<value>38.60</value>
</price>
<seller id="155" isTrustedStore="false" pagamentoDigital="false" advertiserId="0" oneClickBuy="false" oneClickBuyValue="0" cpcDifferentiated="false">
<sellerName>Saraiva.com.br</sellerName>
<thumbnail url="http://imagem.buscape.com.br/vitrine/logo155.gif"/>
<links>
<link url="http://www.livrariasaraiva.com.br/?PAC_ID=25371" type="seller"/>
</links>
<contacts>
<contact value="11-39334000" label="SAC"/>
<contact value="4003-3390" label="Televendas"/>
</contacts>
<rating>
<userAverageRating>
<numComments>213590</numComments>
<rating>8.0</rating>
</userAverageRating>
<eBitRating>
<numComments>213590</numComments>
<rating>Diamante</rating>
<ratingNew>e-bit Excelente</ratingNew>
<ratingId>40</ratingId>
<ebitId>648</ebitId>
</eBitRating>
</rating>
</seller>
</offer>

 

Vide que só uso a parte destacada em vermelho.

Esse é o codigo que estou usando para ler o XML:

<script>
   if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
   } else {// code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlhttp.open("GET", "http://bws.buscape.com/service/offers/lomadee/65717751673178504d42633d/BR/?sourceId=35212745&advertiserId=27&productId=1850140124&page=1", false);
   xmlhttp.send();
   xmlDoc = xmlhttp.responseXML;
   document.write("<table border='1'>");
   var x = xmlDoc.getElementsByTagName("price");
   for ( i = 0; i < x.length; i++) {
    document.write("<tr><td>");
    document.write(x.getElementsByTagName("value")[0].childNodes[0].nodeValue);
    document.write("</td><td>");
   }
   document.write("</table>");
  </script>

 

Desde já agradeço.

  • Moderador
Postado

@GuilhermeYuji

 

Talvez você possa colocar um teste de IF ali por exemplo:

 

var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
        if (httpRequest.readyState === 4) {
              if (httpRequest.status === 200) {
                  // use httpRequest.responseText
              }
        }
    };

Nesta cadeia de IF podes colocar a parte do seu código de inserir na tabela o xml...

 

Contudo, recomendo que use o jQuery para fazer isso é muito mais simples.

http://imasters.com.br/artigo/22122/ajax/lendo-xml-com-jquery-ajax/?trace=1519021197&source=single

Neste link tem uma explicação bem fácil de entender como fazer requisições assíncronas usando xml.

 

PS: A função $.ajax() da versão atual do jquery possui algumas sintaxes um pouco diferentes do artigo. portanto você pode ler como reescrever acessando o manual no próprio site deles: http://api.jquery.com/jquery.ajax/

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!