Выполните итерации по дочерним узлам корневого элемента и проверьте, является ли узел элементом-узлом (childNodes также вернет textNodes для пробелов)
var doc=xml,//the xml-document
childs=doc.documentElement.childNodes,
i=-1,
j=16;//how many nodes you like to get
while(j && childs[++i])
{
if(childs[i].nodeType===1)//check if we got a element-node
{
j--;
//do something with the element
console.log(childs[i].tagName);
}
}
В некоторых браузерах также может быть свойство children, которое возвращает только потомки, являющиеся узлами-элементами, но это не стандарт, поэтому я бы не советовал использовать его.
Когда вы используете библиотеку, такую как jQuery, было бы гораздо проще получить тот же результат, который вам нужен:
$('>*:lt(16)',xml.documentElement)
.each(function(i,o){console.log(o.tagName);});