Можно ли сделать Chrome для выполнения преобразования XSL в локальном файле?

Я изучал xslt и начал тестирование с примерами в w3schools.

Однако, когда я сохраняю xml и xsl в файлах и пытаюсь открыть их локально, chrome не будет выполнять преобразование xsl. Он просто показывает пустую страницу.

Я добавил в XML-документ, а firefox отображает его, как он должен выглядеть. Кроме того, если я просматриваю файлы через веб-сервер, хром отображает файл, как он должен выглядеть.

Неужели хром сталкивается с проблемой поиска информации о стилях, когда ссылка является локальной? Изменение href в file:///C:/xsl/style.xsl не имеет никакого значения.

Обновление: похоже, это побочный эффект политики безопасности, чтобы не обрабатывать файл: /// * как одно и то же происхождение. Это приводит к появлению следующей ошибки в консоли:

Небезопасная попытка загрузить файл URL: /// C: /xsl-rpg/style.xsl из фрейма с URL-файлом: /// C: /xsl-rpg/data.xml. Домены, протоколы и порты должны совпадать.

Короткий ответ: «Нет, используйте один из разнообразных наборов браузеров » .

Причина, по которой это не работает, связана с проблемой безопасности, с которой Chrome обратился спорным образом [1] [2] [3] [4] , блокируя файлы XML от доступа к локальным файлам XSLT в том же каталоге, в то время как HTML файлы могут получить доступ к файлам .CSS в том же каталоге.

По вышеперечисленным вопросам пользователи попросили дать более четкое сообщение об ошибке (поскольку домены, протоколы и порты действительно совпадают) или, по крайней мере, отображать XML без стилизации. Разработчики Chrome проигнорировали эти запросы.

Вы можете сделать это локально с помощью флагов командной строки Chrome.

Определенный флаг: --allow-file-access-from-files

В OS X: из запуска Terminal.app /Applications/Google\ Chrome.app/contents/MacOS/Google\ Chrome --allow-file-access-from-files

В Windows: из командной строки запустите %LOCALAPPDATA%\Google\Chrome\Application\chrome.exe --allow-file-access-from-files

Примечание. Вероятно, вам придется бросить Chrome, если он в настоящее время работает, иначе Ch

Если вы хотите придерживаться OP, ответ будет No (как указывали другие), но один из способов устранить проблему – запустить простой веб-сервер и открыть файлы через http в chrome. Если у вас установлен python 2.x, вы можете запустить веб-сервер, набрав:

 python -m SimpleHTTPServer 

Или в python 3.x:

 python3 -m http.server 

а затем откройте файл, используя http://localhost:8000/yourfile.xml в chrome. Надеюсь, вы просто хотите, чтобы ваша работа была выполнена, и не важно, чтобы открыть файл, используя file://

На странице Chrome Bug потребовалось немного расшифровки – они очень заинтересованы в том, чтобы не объяснять, в чем проблема, и почему они выбрали взломать всех, а не нарушать всех.

Предположим, у меня есть XML-файл – где-то – на моем жестком диске, например:

C: \ Users \ Ian \ Documents \ Налоги \ StudioTaxReturn_2015.xml

А вредоносному объекту – каким-то образом – удалось удалить вредоносный файл Xml на моем компьютере, например:

C: \ Users \ Ян \ AppData \ LocalLow \ Temp \ TrojanVirusWorm.xml

Imagine TrojanVirusWorm.xml содержит инструкцию по обработке таблиц стилей ( PI ):

   

Затем злоумышленник инструктирует мой браузер перейти к локально сохраненному файлу trojanVirusWorm.xml .

По-видимому, есть способ, которым XML-файл может читать содержимое файла XSD (а не преобразовываться с помощью файла XSD):

       

Я не понимаю, как XML-файл может читать файл таблицы стилей. Но команда Chrome уверяет нас, что это опасно и что ее невозможно решить.

Каждый другой браузер решил это сделать. Они решили это, потому что это не проблема .

Мое обходное решение для просмотра xml в соответствии с файлом xsl

Предположим, у нас есть файл some_file.xml с заголовками:

   
  1. Мы загружаем файл https://some-site.com/Common.xsl и размещаем его рядом с файлом some_file.xml
  2. Измените часть нашего заголовка с href="https://some-site.com/Common.xsl" на href="http://localhost:8001/Common.xsl"
  3. Запуск в каталог с нашими файлами – python3 -m http.server 8001
  4. Открыть в любом браузере http://localhost:8001/some_file.xml
  • Умножьте 2 числа, а затем суммируйте
  • Строка XSLT заменяет
  • Создание новой строки в XSLT
  • Обработка XSLT с помощью Java?
  • XSLT: как преобразовать XML-узел в строку
  • Функция замены строки xslt 1.0
  • Заменить специальные символы в XSLT
  • Где я могу найти хороший учебник по файлам XSLT?
  • Функция замены XSLT не найдена
  • Как сохранить символы новой строки в атрибуте XML?
  • Как я могу проверить, какой XSLT-процессор используется в Solr?
  • Давайте будем гением компьютера.