Преобразуйте XML-документ в HTML и установите <head>

У меня есть XML-документ, загруженный в браузер. Мне нужно использовать его в качестве шаблона для создания и отображения вместо него HTML-страницы, при этом вся работа выполняется в JavaScript на клиенте.

Я в основном это сделал:

  • Документ xml загружает файл JavaScript.
  • JavaScript читает документ и генерирует html-документ, который я хочу отобразить.
  • JavaScript заменяет innerHTML документа новым html-документом.

Единственное, чего мне не хватает, это то, что я хотел бы также предоставить заголовок нового документа.

Конечно, я могу создавать содержимое головы. Но я не могу найти способ вернуть его в документ браузера. Все мои очевидные попытки терпят неудачу, попадаются элементы документа, доступные только для чтения, или операции, которые не поддерживаются в документах, отличных от HTML.

Есть ли способ сделать это, или я лаю не на то дерево?

Альтернативный вопрос: даже если это действительно невозможно, может быть, это не имеет значения. Возможно, я смогу использовать свой JavaScript для выполнения всего, что может контролироваться головой (например, настройки области просмотра). В конце концов, JavaScript знает всю среду отображения и может принимать все необходимые решения. Является ли это разумным подходом или он приведет к написанию тысяч строк кода для обработки особых случаев, связанных с конкретным браузером или устройством?

Отредактировано - добавлено следующее:

Я думаю, что реальный вопрос шире: браузер (по крайней мере, Chrome и Chromium), похоже, проводит четкое различие между страницами, загруженными как .xml, и страницами, загруженными как .html. Я пытаюсь нарушить эти правила: я загружаю страницу как .xml, но затем использую JavaScript, чтобы преобразовать ее в .html.

Но браузер по-прежнему хочет просматривать страницу как .xml. Это проявляется по-разному: я не могу добавить <head>; Я не могу загрузить CSS на страницу; теги форматирования не интерпретируются как html; и т.п.

Как мне убедить браузер в том, что моя страница теперь имеет добросовестный HTML?

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

Jaromanda X 19.03.2018 10:32

Общая цель здесь - создать замену JavaScript для большей части XSLT, поэтому я бы предпочел решение на чистом JavaScript. Но если это невозможно, я открыт для всех решений.

David Goldfarb 19.03.2018 10:54

Кроме того, я только что бегло посмотрел, и мне непонятно, может ли XSLT изменять заголовок документа. Это возможно?

David Goldfarb 19.03.2018 11:04

Я не использовал xslt много лет - я просто знаю, что использовал xslt для создания (полного) HTML-документа из XML - так что он будет включать <head> - не совсем уверен, о каких битах "только для чтения" вы говорите, ни то, что вы пытаетесь сделать с HTML, который вы создаете

Jaromanda X 19.03.2018 11:26
document.head доступен только для чтения, поэтому самый наивный подход не удался. document.write также не работает, потому что браузер открыл исходный файл как xml и поддерживает запись только в html-документах. Общая картина заключается в том, что я хочу, чтобы один файл xml отображался как текст, pdf или html из узла, а также был доступен для просмотра в браузере как визуализированный html. Итак, XSLT нужно будет преобразовать структуру (легко), а затем вернуть ее в дом браузера (легко, за исключением головы).
David Goldfarb 19.03.2018 13:16

Я бы предложил здесь использовать серверное решение. Добавьте код для чтения запроса на «filename.xml? Output = html», преобразуйте XML в HTML с помощью XSLT (с head), а затем отправьте его в браузер.

Heretic Monkey 19.03.2018 22:03

Загрузите пустую страницу как html и используйте REST, чтобы получить XML и JavaScript для рисования страницы. Это постоянно делается в приложениях.

Kevin Brown 19.03.2018 23:30

Похоже, я этим и закончу. Это не соответствует одной из целей проекта, но заинтересованные стороны согласились, что это достаточно хорошо, а не против ветряных мельниц. Спасибо.

David Goldfarb 20.03.2018 10:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
284
0

Другие вопросы по теме