Impressão bonita de XML com javascript

Eu tenho uma string que representa um XML não recuado que eu gostaria de imprimir. Por exemplo:

<root><node/></root>

Deve se tornar:

<root>
  <node/>
</root>

O destaque da sintaxe não é um requisito. Para resolver o problema, primeiro transformo o XML para adicionar retornos de carro e espaços em branco e, em seguida, uso umpré&nbsp;para gerar o XML. Para adicionar novas linhas e espaços em branco, escrevi a seguinte função:

function formatXml(xml) {
    var formatted = '';
    var reg = /(>)(<)(\/*)/g;
    xml = xml.replace(reg, '$1\r\nO destaque da sintaxe não é um requisito. Para resolver o problema, primeiro transformo o XML para adicionar retornos de carro e espaços em branco e, em seguida, uso um3');
    var pad = 0;
    jQuery.each(xml.split('\r\n'), function(index, node) {
        var indent = 0;
        if (node.match( /.+<\/\w[^>]*>$/ )) {
            indent = 0;
        } else if (node.match( /^<\/\w/ )) {
            if (pad != 0) {
                pad -= 1;
            }
        } else if (node.match( /^<\w[^>]*[^\/]>.*$/ )) {
            indent = 1;
        } else {
            indent = 0;
        }

        var padding = '';
        for (var i = 0; i < pad; i++) {
            padding += '  ';
        }

        formatted += padding + node + '\r\n';
        pad += indent;
    });

    return formatted;
}

Eu então chamo a função assim:

jQuery('pre.formatted-xml').text(formatXml('<root><node1/></root>'));

Isso funciona perfeitamente bem para mim, mas enquanto escrevia a função anterior, pensei que deveria haver uma maneira melhor. Então, minha pergunta é: você conhece alguma maneira melhor de fornecer uma string XML para imprimi-la em uma página html? Quaisquer estruturas javascript e / ou plug-ins que possam fazer o trabalho são bem-vindos. Meu único requisito é que isso seja feito no lado do cliente.