Попытка преобразовать следующую функцию в Coffeescript:
var parse = function (elem) {
for each(var subelem in elem) {
if (subelem.name() !== null ) {
console.log(subelem.name());
if (subelem.children().length() > 0) {
parse(subelem);
}
} else {
console.log(subelem);
}
}
};
var xml = new XML(content);
parse(xml);
Она просто печатает теги элементов и любой текст в консоль.
Попытка с использованием:
parse = (elem) ->
if elem.name()?
console.log elem.name()
if elem.children().length() > 0
parse subelem for own elkey, subelem of elem
else
console.log elem
xml = new XML content
parse subelem for own elkey, subelem of xml
Но кажется, что он никогда не анализирует что-либо в корневом XML-узле и заканчивается бесконечным циклом рекурсии, непрерывно распечатывающим тег корневых узлов, пока он не взорвется.Есть идеи, что я делаю не так?Спасибо.