Firefox 3 не применяет мою таблицу стилей xslt, но другие браузеры - PullRequest
10 голосов
/ 21 октября 2008

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

До недавнего времени это нормально работало в Firefox 2, 3, IE5, 6 и Chrome. Однако в последнее время что-то изменилось, и теперь Firefox 3 отображает только текстовые элементы в источнике.

Источник страницы начинается так:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Firefox 2.0 and Internet Explorer 7 use simplistic feed sniffing to override desired presentation behavior for this feed, and thus we are obliged to insert this comment, a bit of a waste of bandwidth, unfortunately. This should ensure that the following stylesheet processing instruction is honored by these new browser versions. For some more background you might want to visit the following bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=338621 -->
<?xml-stylesheet type="text/xsl" href="/WebObjects/SantaPreview.woa/Contents/WebServerResources/Root.xsl"?>
<wrapper xmlns="http://www.bbc.co.uk/ContentInterface/Content" xmlns:cont="http://www.bbc.co.uk/ContentInterface/Content" sceneId="T2a_INDEX" serviceName="DSat_T2">
    ....

Firebug показывает, что загружается файл Root.xsl, а заголовки ответа для него включают строку

Content-Type    text/xml

Я также пробовал использовать application / xml в качестве типа контента, но это не имеет значения: - (

Расширение веб-разработчика также показывает правильный сгенерированный источник, и если вы сохраните его и загрузите страницу в Firefox, оно будет отображаться правильно.

Версия Firefox, отображающая проблему: 3.0.3

Есть идеи, что я могу делать не так?

Ответы [ 5 ]

6 голосов
/ 24 октября 2008

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

Для меня это говорит о том, что с вашими выражениями xpath что-то не так, и что атрибуты xsl: template / @ match не соответствуют исходному документу.

Вы не предоставили достаточно информации для дальнейшей диагностики, поэтому я могу предложить это слепое предположение.

РЕДАКТИРОВАТЬ: оказалось, что проблема заключалась в том, что IE и Chrome молча принимают набор узлов в качестве аргумента для длина строки , а FF3 нет. Обратите внимание, что в спецификации указан необязательный строковый аргумент и не указывается поведение с аргументом набора узлов.

4 голосов
/ 24 апреля 2013

Если вы используете NoScript, это также отключает таблицы стилей XSL, пока вы не Allow <site>.

3 голосов
/ 13 октября 2010

Я просто пишу здесь для потомков - у меня был тот же симптом, что и у Firefox 3. Однако в моем случае проблема была в другом:

Firefox, кажется, действительно, действительно не нравится, когда в файле XSL есть подчеркивание _ в имени. Мой XSLT-файл назывался что-то вроде my_super_nice_xslt_which_loads_in_opera_and_ie.xsl.

Итак, люди, давайте не будем использовать подчеркивание. Вместо этого используйте дефис (минус): my-super-nice-xslt-which-loads-in-opera-and-ie.xsl.

Затем он будет загружаться и в Firefox. Я думаю, что теперь я буду просто использовать мертвые простые имена с буквами и цифрами в них. Вы знаете поговорку «один раз укушен, дважды застенчив». (В моем случае меня дважды укусили, но я забыл первый раз, так что в этот раз меня как будто застенчиво четыре раза.)

3 голосов
/ 24 октября 2008

Отвечая на мой вопрос в свете последующего расследования. ddaa ведите меня в правильном направлении.

Firefox выглядит довольно суетливо с преобразованиями xslt. Дважды проверьте xslt, чтобы убедиться, что в нем нет ошибок, которые маскируют IE и Chrome.

XML Spy - это хороший, хотя и не дешевый продукт, который выявляет ряд ошибок в xslt. Кажется, он поднимает как минимум столько же проблем, сколько и рендер Firefox.

К сожалению, вы не можете рассчитывать на расширение Web Developer, чтобы решить проблему.

0 голосов
/ 22 октября 2008

попробуйте использовать его как application / xml вместо text / xml

...