整理从xml返回的列表

时间:2016-07-07 10:02:51

标签: jquery arrays list xml-parsing

我有xml鸡尾酒配方

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

并像这样检索它

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

这会返回一个非常丑陋的文本

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

我可以将其转换为数组或可用列表吗? xml文件中有多个配方。

1 个答案:

答案 0 :(得分:1)

要解决此问题,您需要修剪项目周围的空白。为此,您可以使用map()生成已清理的数组:

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>