У меня есть ситуация, когда я генерирую xml для запроса SOAP и получаю данные, которые поступают в этот xml от третьей стороны. Этот код выполняется на сервере и не имеет доступа к функциям в DOM. Иногда в данных будет уже закодировано xml сущностей, а в других случаях - нет.
Например, иногда я получу это: Billy & Joe's Garage
И в другое время я получу это: Billy & Joe's Garage
Я знаю, что есть решения для обработки первого примера, подобные тем, которые можно найти в этом посте: как избежать xml сущностей в javascript?
Но если применить эти решения ко второму примеру, я получу что-то вроде:
function escapeXml(unsafe) {
return unsafe.replace(/[<>&'"]/g, function (c) {
switch (c) {
case '<': return '<';
case '>': return '>';
case '&': return '&';
case '\'': return ''';
case '"': return '"';
}
});
}
escapeXml("Billy & Joe's Garage")
// Returns "Billy &amp; Joe&apos;s Garage"
Так что для второго примера желаемый вывод будет таким же, как и ввод.