The reason it displays ‘proper’ when you use response() is because your browser has its own XSLT rules that uses to present plain XML. Not all browsers even have this; some may just display it as plain text.
There is no way to ‘transfer’ the browser’s built-in XML styles to a view: the the transformation of XML data to a display view via XSLT rules happens in the browser on the client side, whereas your code and your view are evaluated on the server, with no access to the browser.
You’d have to include your own XSLT to style the XML content as you desire.