Если вы хотите сделать это, я бы определенно рекомендовал вариант 2, поскольку он содержит один уровень преобразования меньше, чем вариант 1. Если вы уже просматриваете элементы меню и их иерархии, вы также можете создать элементы меню. и подпункты напрямую - я не вижу большой выгоды от обхода XML и затем через XSLT в структуру меню.
Марк
PS: вариант 3 (поставщик файла Sitemap для SQL) также звучит как очень хорошая идея, если структура и параметры карты сайта достаточно хороши для вас (как правило, так и должно быть). Я бы, наверное, сначала попробовал этот вариант и пошел оттуда.