Search Webservice Itens

Bom dia,

Pessoal estou com um problema na qual não estou encontrando solução.

Estou executando um loop for em um resultado obtido a partir de um webservice, porém percebi que ele não está obedecendo aos valores vazios e seus respectivos índices, abaixo segue o código:

var xml='<TAB><ZFLUIGS07><MBLNR>5000052293</MBLNR><MJAHR>2018</MJAHR><ITENS><ZFLUIGS06><MBLNR>5000052293</MBLNR><MJAHR>2018</MJAHR><MBLPO>0001</MBLPO><BSTNR>0031008735</BSTNR><EBELP>00010</EBELP><COSTCENTER></COSTCENTER><WBS_ELEM></WBS_ELEM><ACCTASSCAT>K</ACCTASSCAT><KNTTX>Centro de custo</KNTTX><MATERIAL>000000000006000270</MATERIAL><SHORT_TEXT>ADMINISTRAÇÃO DE CONVÊNIO - V.A./V.R.</SHORT_TEXT><QUANTITY>1.0</QUANTITY><NET_PRICE>2418.27</NET_PRICE></ZFLUIGS06><ZFLUIGS06><MBLNR>5000052293</MBLNR><MJAHR>2018</MJAHR><MBLPO>0002</MBLPO><BSTNR>0031008735</BSTNR><EBELP>00020</EBELP><COSTCENTER>EDB0104</COSTCENTER><WBS_ELEM></WBS_ELEM><ACCTASSCAT>K</ACCTASSCAT><KNTTX>Centro de custo</KNTTX><MATERIAL>000000000006000270</MATERIAL><SHORT_TEXT>ADMINISTRAÇÃO DE CONVÊNIO - V.A./V.R.</SHORT_TEXT><QUANTITY>1.0</QUANTITY><NET_PRICE>16752.7</NET_PRICE></ZFLUIGS06></ITENS></ZFLUIGS07></TAB>';

$(xml).find("ITENS").map(function(){
    var xmlLength = $(this).find("ZFLUIGS06").length;
    for(var i = 0; i < xmlLength; i++){

          var textnrPedido = $(this).find("ZFLUIGS06").find('BSTNR').contents().eq(i).text();
      var textnrItem = $(this).find("ZFLUIGS06").find('EBELP').contents().eq(i).text();
      var textcodMat = $(this).find("ZFLUIGS06").find('MATERIAL').contents().eq(i).text();
      var textdescMat = $(this).find("ZFLUIGS06").find('SHORT_TEXT').contents().eq(i).text();     
      var textcCusto = $(this).find("ZFLUIGS06").find('COSTCENTER').contents().eq(i).text();   
      var textqtd = $(this).find("ZFLUIGS06").find('QUANTITY').contents().eq(i).text();     
      var textPrice = $(this).find("ZFLUIGS06").find('NET_PRICE').contents().eq(i).text();

      alert(i+" : "+textcCusto);      

      }
});

Na variável "xml", na tag COSTCENTER, o valor do índice 0 não existe, ja no indice 1 ele tem o valor "EDB0104". Ao executar o script ele joga o valor "EDB0104" no indice 0. Como posso fazer para evitar isso, gostaria que ele trouxesse os valores corretos nos seus respectivos índices. Ou pelo menos trouxesse o valor no indice correto.

No link abaixo ja tenho o projeto pronto para teste caso queiram, ja mostrando um alert com o indice e o campo COSTCENTER: http://jsfiddle.net/8phk536c/6/

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags array ou faça a sua própria pergunta.