Как бы,укпзанный в (1) результат можно получить только ручной записью,т.к.структура ничего не знает от том,в какой блок тагов ее хотят писать.
Опять же,если имена полей структуры соответствуют именам тагов,то просто циклом,если нет,то нужно как-то определить это соответствие.
А можно почитать про XDTO,хотя и там нужно стараться.
Закон Брукера: Даже маленькая практика стоит большой теории.