Why are we catching a `TypeError` here? I'd expect an `IOError` (if the file isn't there / unreadable) or an `lxml.etree.XMLSyntaxError` (if it isn't XML).