2015-04-19 1 views
0

Je suis assez nouveau sur jQuery et la manipulation de doms xml. Donc, si ma question n'est pas reliée, pardonnez-moi.jQuery supprimer ou groupe par les mêmes noeuds dans xml dom

échantillon de mon XML:

<Urunler> 
<Urun> 
    <ID>21955</ID> 
    <Mensei>Coke</Mensei> /* Contains Same Value */ 
</Urun> 
<Urun> 
    <ID>21956</ID> 
    <Mensei>Coke</Mensei> /* Contains Same Value */ 
</Urun> 
<Urunler> 

Mon code Ajax appel et Jquery pour leur montrer en html dom:

$.ajax({ 
     url: 'webservice/Resim/Stokkart.xml', 
     dataType: 'xml', 
     cache:true, 
     success: parseXml 
}); 

function parseXml(xml) { 
     $(xml).find("Urun").filter(function() { 
      return $(this).find("ASTipNo").text() == categoryCode; 
     }).each(function() { 
      $('#product-list').append(
       '<div class="product-name col-lg-12 col-md-12 col-sm-12 col-xs-12"></div>'+ 
        '<h5 style="color:red;">' + $(this).find("Mensei").text() + '</h5>'+ 
       '</div>' 
      ); 
     }); 
    } 

Ce que je suis en train de réaliser; Je veux supprimer les noeuds <Urun> répétitifs s'ils ont les mêmes valeurs <Mensei> dans mon document xml ou puis-je les fusionner en un seul noeud (comme GROUP BY en SQL)? PS: Je ne peux pas le faire du côté serveur car je développe une application mobile hors ligne sur cordova.

Toute aide sera grandement appréciée.

+0

Peut être @epascarello peut me aider – HddnTHA

Répondre

1

http://jsfiddle.net/9cdwLta4/

var xmlString = " 
<Urunler> 
    <Urun> 
    <ID>21955</ID> 
    <Mensei>Coke</Mensei> 
    </Urun> 
    <Urun> 
    <ID>21956</ID> 
    <Mensei>Coke</Mensei> 
    </Urun> 
    <Urun> 
    <ID>21957</ID> 
    <Mensei>Test</Mensei> 
    </Urun> 
<Urunler>"; 



    var menseiA = []; 
    var $xml = $(xmlString); 
    var $uruns = $xml.find("Urun"); 

    //output xml  
    $xml.find("Urun").each(function() { 
     var id = $(this).find('ID').text(); 
     var mensei = $(this).find('Mensei').text(); 
     console.log(id + ':' + mensei); 
    }); 
    console.log('====================='); 

    //finds and removes duplicates 
    $uruns.each(function() { 
     var mensei = $(this).find('Mensei').text(); 
     if (jQuery.inArray(mensei, menseiA) !== -1) $(this).remove(); 
     menseiA.push(mensei); 
    }); 

    //output new xml 
    $xml.find("Urun").each(function() { 
     var id = $(this).find('ID').text(); 
     var mensei = $(this).find('Mensei').text(); 
     console.log(id + ':' + mensei); 
    }); 
+0

merci, cela a fonctionné comme un charme! – HddnTHA