Вариантов много.
Можно так:
var
html = '<div><h5>тест</h5><div>{time}</div><a href="{ip}">Страница</a></div>',
xml = '<?xml version="1.0"?><new><time>10.00</time><ip>127.0.0.1</ip></new>',
parse = new window.DOMParser(),
docXML = parse.parseFromString(xml, 'application/xml');
[].slice.call( docXML.documentElement.children ).forEach(function ( el ) {
html = html.replace( new RegExp('{' + el.tagName + '}', 'g'), el.textContent );
});
Или так:
var
xml = '<?xml version="1.0"?><new><time>10.00</time><ip>127.0.0.1</ip></new>',
html = '<div><h5>тест</h5><div>{time}</div><a href="{ip}">Страница</a></div>';
html = html.replace(/\{([a-z]*)\}/gi, function ($0, $1) {
return xml.match( new RegExp('<' + $1 + '>(.*)</' + $1 + '>') )[1].trim();
});