I recommend doing the server on the conversion side, because you have more control over it. If you rely on the browser, you may see slight differences in the rendering mechanisms in different browsers. If you transform the server and pass html, you can do a cleaner test by specifying exactly what html you want to generate, making sure that the static version of this html looks correct, and then works on your XSLT to make sure it generates html correctly .
In order to get accessible XML on the client side, as part of your conversion, you can output the XML sections that you need (or the entire DOM) and place them either in a JavaScript variable or somewhere accessible on the page.
I found that client-side rendering is good for small, controlled (for example, internal) applications, but for something where you want tight control over the output server side to be more reliable.
source share