XSLT-style transformations in C#