Показать сообщение отдельно
  #7 (permalink)  
Старый 26.08.2016, 09:59
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

Вариантов много.

Можно так:
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();
});

Последний раз редактировалось dd_smol, 26.08.2016 в 11:28.
Ответить с цитированием