replace xml.Unmarshal with recursive parse

Unmarshal doesn't provide us with a way to only extract the text without
the innerxml.