У меня есть XML-документ, загруженный в браузер. Мне нужно использовать его в качестве шаблона для создания и отображения вместо него HTML-страницы, при этом вся работа выполняется в JavaScript на клиенте.
Я в основном это сделал:
Единственное, чего мне не хватает, это то, что я хотел бы также предоставить заголовок нового документа.
Конечно, я могу создавать содержимое головы. Но я не могу найти способ вернуть его в документ браузера. Все мои очевидные попытки терпят неудачу, попадаются элементы документа, доступные только для чтения, или операции, которые не поддерживаются в документах, отличных от HTML.
Есть ли способ сделать это, или я лаю не на то дерево?
Альтернативный вопрос: даже если это действительно невозможно, может быть, это не имеет значения. Возможно, я смогу использовать свой JavaScript для выполнения всего, что может контролироваться головой (например, настройки области просмотра). В конце концов, JavaScript знает всю среду отображения и может принимать все необходимые решения. Является ли это разумным подходом или он приведет к написанию тысяч строк кода для обработки особых случаев, связанных с конкретным браузером или устройством?
Отредактировано - добавлено следующее:
Я думаю, что реальный вопрос шире: браузер (по крайней мере, Chrome и Chromium), похоже, проводит четкое различие между страницами, загруженными как .xml, и страницами, загруженными как .html. Я пытаюсь нарушить эти правила: я загружаю страницу как .xml, но затем использую JavaScript, чтобы преобразовать ее в .html.
Но браузер по-прежнему хочет просматривать страницу как .xml. Это проявляется по-разному: я не могу добавить <head>; Я не могу загрузить CSS на страницу; теги форматирования не интерпретируются как html; и т.п.
Как мне убедить браузер в том, что моя страница теперь имеет добросовестный HTML?
Общая цель здесь - создать замену JavaScript для большей части XSLT, поэтому я бы предпочел решение на чистом JavaScript. Но если это невозможно, я открыт для всех решений.
Кроме того, я только что бегло посмотрел, и мне непонятно, может ли XSLT изменять заголовок документа. Это возможно?
Я не использовал xslt много лет - я просто знаю, что использовал xslt для создания (полного) HTML-документа из XML - так что он будет включать <head> - не совсем уверен, о каких битах "только для чтения" вы говорите, ни то, что вы пытаетесь сделать с HTML, который вы создаете
document.head доступен только для чтения, поэтому самый наивный подход не удался. document.write также не работает, потому что браузер открыл исходный файл как xml и поддерживает запись только в html-документах. Общая картина заключается в том, что я хочу, чтобы один файл xml отображался как текст, pdf или html из узла, а также был доступен для просмотра в браузере как визуализированный html. Итак, XSLT нужно будет преобразовать структуру (легко), а затем вернуть ее в дом браузера (легко, за исключением головы).
Я бы предложил здесь использовать серверное решение. Добавьте код для чтения запроса на «filename.xml? Output = html», преобразуйте XML в HTML с помощью XSLT (с head), а затем отправьте его в браузер.
Загрузите пустую страницу как html и используйте REST, чтобы получить XML и JavaScript для рисования страницы. Это постоянно делается в приложениях.
Похоже, я этим и закончу. Это не соответствует одной из целей проекта, но заинтересованные стороны согласились, что это достаточно хорошо, а не против ветряных мельниц. Спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


рассматривали ли вы XSLT - поскольку вы не показали кода как такового, это просто предложение