2016-07-07 11 views
0

Ich habe xml einer Cocktail-RezeptAufräumen Liste zurückgegeben von xml

<ingredients> 
    <ingredient> 
     <item>Vodka</item> 
     <item>lime gelatin</item> 
     <item>Sugar syrup</item> 
     <item>Lime leaves</item> 
     <item>lemon</item> 
    </ingredient> 

und abrufen es wie dieses

ingredients.push($(xml).find("ingredients").eq(i).children().text()); 

Das gibt ganz ein hässliches Stück Text

0 
: 
"↵    Vodka↵    lime gelatin↵    Sugar syrup↵    Lime leaves↵    lemon↵   " 

Kann ich das in ein Array oder eine verwendbare Liste konvertieren? In der XML-Datei gibt es mehrere Rezepte.

Antwort

1

Um dies zu beheben, müssen Sie den Leerraum um die Elemente trimmen. Um dies zu tun können Sie map() verwenden, um die hygienisiert Array zu erzeugen:

var xml = '<?xml version="1.0" encoding="UTF-8"?>\n<root>\n<ingredients>\n<ingredient><item>Vodka</item>\n<item>lime gelatin</item>\n<item>Sugar syrup</item>\n<item>Lime leaves</item>\n<item>lemon</item>\n</ingredient>\n</root>'; 
 

 
var i = 0; 
 
var ingredients = $(xml).find("ingredients").eq(i).find('item').map(function() { 
 
    return $(this).text().trim(); 
 
}).get().join(', '); 
 
console.log(ingredients);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>