Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > XML, XSL > Некорректное отображение содержимого узлов |
Автор: ICEMAN3141592 17.1.2012, 08:55 | ||||
Здравствуйте, у меня тут магия. Вообщем, с помощью бибилотеки на сервер приходят данные в xml виде, далее с помощью XSLT-парсера переводятся в "кашку" html, css, javascript и отсылаются браузеру. Кашку варил не я, но я должен исправить следующий косяк. На локальном сервере у меня все нормально оторбражается, а на тестовом нет. Один файл, один код, НО отображается по разному (все смотрю в Mozilla Firefox) Вот xsl - файл.
Проблемы с тегом/узлом "folder". Вот входной xml-файл
Пробовал изменять кодировки, но толку нету, тем более странно, что на локальном все нормально, а на тестовом - нет. Входной xml-файл имеет коидровку "utf-8", XSL-файл имеет кодировку "windows-1251", выходной его данные в формате "UTF-16", а сама страница имеет charset = "windows-1251". Что более того странно, что "Папка для роликов отображается нормально ![]() Вот изображение на тестовом сервере в браузере http://www.imageup.ru/img189/reporterrortest864380.jpg.html Изображение на локальном сервере в браузере http://www.imageup.ru/img189/reportcorrectlocal864381.jpg.html |
Автор: ICEMAN3141592 17.1.2012, 15:51 |
Народ, ну хотя бы гипотезы ![]() А то уже 25 просмотров и ниодной версии |
Автор: magelan 17.1.2012, 16:04 |
утф-16 вам зачем? умышленно зарезаете возможность использовать ajax? почти у всех парсеров проблемы c шестнадцатой, для начала поставте утф-8. и вообще разберитесь с вашим "зоопарком" кодировок, давно пора все в утф-8 и забыть о проблемах с кривыми значками. |
Автор: ICEMAN3141592 18.1.2012, 12:02 |
Исправил все на windows-1251, проблема осталась, как в принципе я и ожидал, т.к. если бы проблема, возможно, была в кодировке, то на локальной машине проблема была та же, но как видно, ее на лок. машине нету. |
Автор: ICEMAN3141592 19.1.2012, 19:00 | ||||
xsl - файл перевел в windows-1251 в Notepad++ (а encoding в windows-1251 там уже стоит), и вместо UTF-16 поставил windows-1251, в котором отображается страница в браузере.
Я тоже об этом думал, но код один и тот же, я изменил на локальном, сразу же код перенес на тестовый. Причем когда я перевел все файлы в windows-1251, на локальном ничего не изменилось, как отображал так и отображает, на тестовом все также...как не отображает, так и не отображает. Может быть это с настройками тестового компьютера ? Самое интересное, что как видно из скриншота, "Папка для роликов" отображается нормально, просто магия. |
Автор: diadiavova 19.1.2012, 21:24 |
ICEMAN3141592, вообще, меня несколько смущает, что ты формируешь элементы не обычным для хсл способом(то есть непосредственной вставкой в документ выходных элементов), а делаешь это при помощи элемента value-of и конкатенации строки. Скорей всего проблема кроется где-то в этих местах, иногда разные процессоры могут обрабатывать документы по разному и если серверное по отличается от того, на котором все это дело тестировалось, то оно может эти вещи как-то иначе обрабатывать. Не очень понятно для чего вообще был такой способ выбран. |
Автор: ICEMAN3141592 24.1.2012, 09:35 | ||
Извините, мой опыт с xslt очень скуп, Вы не могли показать, как правильно писать в xslt данный пример ? |
Автор: diadiavova 24.1.2012, 13:49 | ||||
ICEMAN3141592, ну я все не буду делать( само собой), но на одном примере покажу. Вот возьмем одну строчку такого вида(22 строка кода в твоем примере).
Вместо этого должно быть примерно следующее
|
Автор: ICEMAN3141592 24.1.2012, 16:39 |
Ага, т.е. для остальных 3ех случаев сделать тоже самое ? |
Автор: ICEMAN3141592 24.1.2012, 17:28 |
О, спасибо. Не увидел. Прочитал между строк ![]() diadiavova, и правда, огромное спасибо ! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Мне просто 1 задача стоит, вроде все работает на локальном, а тестовый выделывается. Думал, что ради одной, по идеи, мелочной задачи прошариваться по-крупному в xslt не решился, все-таки есть же профи в этом деле ![]() Не лентяй, просто хрень какая-то творится между разными машинами с одним и тем же кодом. P.S. irinazanuda, а вы не жена diadiavova ? А то слышится, какой - то странный звук пилы... |
Автор: diadiavova 24.1.2012, 21:51 | ||
![]() |