Есть ли хороший способ отфильтровать дочерние теги (особенно если я знаю родительский тег, который я хочу отфильтровать)?
Используйте дочерний селектор CSS, чтобы сказать, что вам нужны только прямые потомки, а не все потомки.
Я не уверен, что такое "xml" в вашем примере. Если это XMLDocument, который вы получили, например. ответ AJAX, вы бы сказали:
var firstname = $(xml).find('userInfo>firstname').text();
С другой стороны, если это узел элемента XML для userInfo внутри такого документа, вы бы сказали:
var firstname = $(xml).find('>firstname').text();
Если это фактический текст строки документа выше, второй случай будет работать, но на самом деле он делает это неправильно. Использование $(markup)
дает вам фрагменты HTML, а не XML. Ваш XML не является допустимым HTML и будет работать только по совпадению.
Нет встроенного способа создания / анализа XML-документа в jQuery. См. Например http://plugins.jquery.com/project/createXMLDocument о том, как вы можете это сделать, хотя поддержка браузера не идеальна.