Вам нужно .filter()
в этом случае:
$(xml).find("item").filter(function() {
return $(this).find("key").text().indexOf('001') === 0;
}).each(function() {
alert(this);
});
Фильтрует элементы по ключевым элементам, текст которых начинается с 001
. Если бы вы могли вообще изменить схему, это было бы намного быстрее ... поиск в дочерних элементах фильтра в целом немного дороже, если вы имеете дело со многими элементами.
Jake замечание по поводу комментариев является хорошим, если это вариант, если у элемента есть атрибуты вместо внутренних элементов, вы можете сделать это намного проще с атрибутом начатым-селектором , вот так:
$(xml).find("item[key^=001]").each(function() { alert(this); });