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/