Почему мои браузеры отображают XML-файлы как пустые страницы?

каждый раз, когда я открываю XML-файл, все, что я получаю, это пустая страница вместо дерева тегов. Сам файл корректен и загружается нормально, я вижу его через View Source или в Firebug. Я попытался отключить все мои Аддоны и попытался запустить Firefox в безопасном режиме, но проблема не была решена.

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

UPD: пример файла: http://lj.lain.ru/3/1273657698603.sample.xml
Также я заметил, что каким-то образом все браузеры на машине теперь действуют одинаково, поэтому я меняю вопрос соответственно

12
задан n1313
04.12.2022 20:50 Количество просмотров материала 3002
Распечатать страницу

6 ответов

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

Если файл XML valid тогда большинство браузеров (IE8, Chrome и Firefox) дают сообщение типа This XML file does not appear to have any style information associated with it. The document tree is shown below. и перейти в специальный режим для отображения XML-файлов с функциями, как возможность сворачивать блоки кода.

смотрите здесь: XML Validator

3
отвечен Alan Whitelaw 2022-12-06 04:38

Я только что получил и решил аналогичную проблему: от моего ASP.NET приложение MVC у меня есть контроллер, который возвращает raw XML, который я хочу видеть в веб-браузере в виде дерева DOM.

Chrome все в порядке, но IE 11 просто показывает пустую страницу.

проблема, кажется, в HTTP-заголовке" Content-Type": если он не содержит значения кодировки, т. е. просто показывает пустую страницу (если у вас нет заголовка Content-Disposition, в этом случае IE предлагает вам сохранить XML.)

Итак, следующий ответ HTTP в порядке для Chrome, но IE показывает пустую страницу:

HTTP/1.1 200 OK
Cache-Control: private, s-maxage=0
Content-Type: application/xml
Server: Microsoft-IIS/8.0
Date: Fri, 25 Jul 2014 14:29:02 GMT
Content-Length: 693

<?xml version="1.0" encoding="utf-16"?><data>...</data>

Примечание: убедитесь, что вы указали правильную длину содержимого, хотя я не проверял, что происходит, если заголовок длины содержимого отсутствует или имеет неправильное значение. Кроме того, я удалил X - заголовки, сгенерированные IIS из этой распечатки, но их можно оставить.


а после работает в IE и Хром:

HTTP/1.1 200 OK
Cache-Control: private, s-maxage=0
Content-Type: application/xml; charset=utf-8
Server: Microsoft-IIS/8.0
Date: Fri, 25 Jul 2014 14:29:02 GMT
Content-Length: 693

<?xml version="1.0" encoding="utf-16"?><data>...</data>

единственное отличие это добавление ; charset=utf-8 в заголовке Content-Type.

для ASP.NET разработчики MVC, это означает, что если вы хотите визуализировать raw XML и поддерживать IE, вы не можете использовать:

string xmldata = ...
return this.File(Encoding.UTF8.GetBytes(xmldata), "application/xml");

вместо этого работает:

string xmldata = ...
Response.ContentType = "application/xml";
Response.ContentEncoding = Encoding.UTF8;
Response.AddHeader("Content-Length", Convert.ToString(xmldata.Length));
return this.Content(xmldata);

С уважением.

3
отвечен codetuner 2022-12-06 06:55

это специфично для Firefox, но я считаю, стоит попробовать:

перейдите в раздел справка\поиск и устранение неисправностей в меню Firefox и нажмите кнопку, чтобы открыть папку, содержащую ваш профиль.

резервное копирование и удаление типов mime.RDF-файл, закройте все экземпляры Firefox и снова откройте Firefox.

Это заставит FF повторно генерировать действия по умолчанию для типов mime, о которых он знает, это может исправить проблему, если она вызвана чем-то странным FF делающий.

0
отвечен ChrisB 2022-12-06 09:12

Если вы загружаете XML с сервера, вам нужно установить тип контекста заголовка text/xml.

например, в PHP вам нужно поставить это перед выводом текста:

header("Content-type: text/xml");
0
отвечен Brian 2022-12-06 11:29

есть ли в xml тег наверху, подобный этому?

<?xml version="1.0"?>

это подготовит браузер, чтобы он знал, что делать.

0
отвечен nhutto 2022-12-06 13:46

В дополнение к тому, что пишут другие, некоторые / большинство веб-браузеров не могут отображать xml-файлы, написанные в соответствии со стандартом XML 1.1

Firefox покажет сообщение об ошибке, указывающее на версию 1.1 в прологе xml.

<?xml version="1.1"?>
---------------^

Internet explorer просто покажет пустую страницу.

Если вы разработчик программного обеспечения, то знайте, что отсутствие поддержки XML 1.1 не ограничивается только веб-браузерами. Существует также отсутствие поддержка XML 1.1 на многих языках программирования. (т. е. парсер DOM по умолчанию Java 8 не поддерживает XML 1.1). Вы можете вообще предпочесть придерживаться версии XML 1.0, если у вас есть выбор.

конечно, вы можете просто удалить пролог из xml-файла. Но это не всегда получается. (т. е. узлы xml могут содержать некоторые определенные управляющие символы, которые были запрещены в версии 1.0).

0
отвечен bvdb 2022-12-06 16:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх