A) Одиночный <Foo>
элемент
Вам нужен список атрибутов одного элемента?
... если это так - вам действительно нужен массив ?
Простой $('<foo ... />').get(0).attributes
... будет давать вам NamedNodeMap (объект) атрибутов
B) Все элементы <Foo>
во всем (XML) документе
@ Ответ Суфианы Хассу показывает подход, но отсутствует внутренний цикл ...
Вам нужно извлечь все возможные имена атрибутов элемента (например, элемента Product) внутри всего XML-документа ?
var yourElements = document.getElementsByTagName('Foo'); //get all <Foo> elements
var listOfAttributeNames = []; //prepare empty array for attribute names
var attributeNameBuffer; //buffer for current attribute name in loop
//Loop all elements
for(var i = 0; i < yourElements.length ; ++i){
//Loop all attributes of a current element
for( k = 0 ; k < yourElements[i].attributes.length ; ++k ){
//Temporary store current attribute name
attributeNameBuffer = yourElements[i].attributes[k].name;
//First,
//test if the attribute name does not already exist in our array of names
if( listOfAttributeNames.indexOf(attributeNameBuffer) == -1 )
listOfAttributeNames.push( attributeNameBuffer ); //if not, add it
}
}
console.log(listOfAttributeNames); //display array of attributes in console