Браузер не отображает XML с CSS должным образом, когда XML имеет расширение PHP - PullRequest
1 голос
/ 02 августа 2010

Я использую файл PHP для вывода XML-документа.
Я использую файл CSS для форматирования этого документа XML.
Мой браузер (Safari) не будет отображать форматирование, пока я не передам ему файл с расширением xml. Я думал, что заголовок имеет приоритет над расширением.

parser.php (после обработки php)

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="parser.css"?>
<Main>
<Test>This is some test text that should appear in Blue.</Test>
</Main>

parser.css

Main { 
    background-color: gray;
}
Test {
    color: blue;
}

Если я сохраню вывод php-файла в формате xml и увижу его в браузере, тогда он правильно отобразит форматирование. Но мне нужно генерировать xml на лету.
Это ожидаемое поведение? Я думаю, я мог бы сгенерировать отдельный файл с php, а затем переслать туда браузер.
Или я мог бы настроить мой сервер для анализа XML-файлов, а затем просто изменить расширение моего php-файла (со всем кодом в нем) на XML. Но ни один из них не кажется необходимым.

1 Ответ

2 голосов
/ 02 августа 2010

Документ возвращается как text / html (так как именно это ваш сервер отправляет как заголовок типа контента). Вы захотите заставить его возвращаться в формате XML, что должно решить вашу проблему.

// Before you render parser.php...
header('Content-type: text/xml');

Таким образом, независимо от расширения, ваш браузер будет знать, как отобразить его как XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...