Ну да, спасибо, все получилось

Я бы наверное неделю парился, пока додумался бы создать дополнительный класс с переменной i: IXMLNode внутри
Еще один вопрос напросился, в описании интерфейсов так и не сообразил, запутали они меня своими счетчиками, нужно ли по окончании программы удалять все эти дополнительные классы, т.е. вызывать для них метод destroy?