алгоритм немного сложный на первый взгляд...
нашел его когда нужно было XML парсить..
если сразу непонятно будет, возьми небольшой но реальный XML (не а в с) и пройди его на бумажке по этому алгоритму
сразу все понятно станет..
весьма изящно и работает на все 100
