Я хотел задокументировать ответ, на котором в конце концов остановился, но сначала немного пояснений.
Я предполагал, что мы используем Angular Universal, которая использует Angular как на уровне сервера, так и на уровне клиента.Но это было неправильно: мы использовали обычный Angular, который предназначен для того, чтобы выплевывать файлы .html и .js, которые будут использоваться браузерами по всей стране, где почти все выполняется на стороне клиента, за исключением частей запросов API.Поэтому моя ссылка на «максимизировать работу на стороне клиента» неправильно поняла сценарий использования: ВСЕ работы уже выполнялись на стороне клиента.
Я так и не нашел способ заставить Chrome открыть файл XML и применитьXSLT-преобразование, просто сложным образом передавая его в Chrome, но учитывая, что браузер делал всю работу независимо от того, как я к нему подошел, я согласился с предложением Мартина Хоннена использовать xsltProcessor.
Эта ссылка показывает основной способ использования xlstProcessor, и я совсем не отступил от этого.
// initialize stuff
const xsltProcessor = new XSLTProcessor();
const parser = new DOMParser();
const xmlRequest = new XMLHttpRequest();
// Get XSL stylesheet
xmlRequest.open('GET', 'assets/CCD.xsl', false);
xmlRequest.send(null);
const xsltDocument = xmlRequest.responseXML;
// Parse core string retrieved from the server to formal XML document
const xmlDocument = parser.parseFromString(this.source, 'text/xml');
// Load stylesheet, transform to html
xsltProcessor.importStylesheet(xsltDocument);
const html = xsltProcessor.transformToDocument(xmlDocument);