powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Какие изменения происходят в трансформации в xml/html?
9 сообщений из 9, страница 1 из 1
Какие изменения происходят в трансформации в xml/html?
    #37594906
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть XSL-файл, который я допилил до нужного вида.
Допиливал так: вначале сделал HTML, добился того, чтобы во всех браузерах верстка была нормальной.
После этого стал делать XSL, используя куски из ранее составленного HTML.
Теперь проблема такая: полученный XSL нормально отображается в Опере и Хроме, но в IE8 либо вообще ничего не выводит (пустая страница), либо выводит страницу с поехавшей версткой (на прикрепленном рисунке слева вывод IE, справа как должно быть).
В XSL указана такая строка:
Код: xml
1.
<xsl:output method="xml" indent="yes" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>


Если метод поменять на html, то ничего принципиально не меняется, в IE8 по прежнему или чистая страница, или съехавшая верстка.

У меня есть два файла, sample.html (по которому изначально формировался XSL и который нормально отображается в IE) и output.html (который является выводом XSLT). Я их сравнивал, в структуре никаких различий я не вижу — в output.html добавились переносы строк и отступы, но каркас страницы такой же. Разве что IE из каких-то своих соображений интерпретирует файл output.html не как XHTML Strict, а как-то иначе, что сказывается на внешнем виде.

Может кто сталкивался, из-за чего такое может быть?
Может быть в настройках вывода нужно что-то дополнительно указывать?

________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
Какие изменения происходят в трансформации в xml/html?
    #37594979
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже нашел, в чем дело.
У меня используются пустые блоки <div></div>, в которых стилями определены фиксированные размеры и фоновое изображение.
При трансформации они заменяются на <div/>. И похоже, что IE такие блоки просто не выводит.
...
Рейтинг: 0 / 0
Какие изменения происходят в трансформации в xml/html?
    #37594989
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставил внутрь таких блокив текст "*", теперь все нормально.
Но это как-то не очень, хоть я звездочку и маскирую (делаю прозрачным цветом).
Можно как-то более культурно указать XSLT-процессору, чтобы он не заменял <div></div> на <div/>?
...
Рейтинг: 0 / 0
Какие изменения происходят в трансформации в xml/html?
    #37595008
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще одна странность. Если указываю метод вывода html, то почему-то в Опере все теги <br> дают двойной отступ (две строки).
...
Рейтинг: 0 / 0
Какие изменения происходят в трансформации в xml/html?
    #37595046
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Можно как-то более культурно указать XSLT-процессору, чтобы он не заменял <div></div> на <div/>?
Код: xml
1.
2.
3.
<div>
  <xsl: text> </xsl:text>
</div>

Может даже сработает так
Код: xml
1.
2.
3.
<div>
  <xsl: text/>
</div>


Alibek B.Если указываю метод вывода html, то почему-то в Опере все теги <br> дают двойной отступ (две строки).Минимальный пример с получившимся html в студию. Похоже на то, что вставляется
Код: xml
1.
<br></br>
...
Рейтинг: 0 / 0
Какие изменения происходят в трансформации в xml/html?
    #37595052
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Может даже сработает такКонечно же
Код: xml
1.
<xsl:text>

без пробела после двоеточия
...
Рейтинг: 0 / 0
Какие изменения происходят в трансформации в xml/html?
    #37595058
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Похоже на то, что вставляется <br></br>
Разве что XSLT в Опере работает по другому, чем в Visual Studio 2005.
В студии я получаю <br />.

Вообщем xsl:text и помог.
Объявил такой шаблон:
Код: xml
1.
2.
3.
<xsl:template name="placeholder" match="text()" mode="replace">
<xsl:text></xsl:text>
</xsl:template>


и в пустых DIV-ах просто его вызываю.
Этого оказалось достаточно.
...
Рейтинг: 0 / 0
Какие изменения происходят в трансформации в xml/html?
    #37595114
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Разве что XSLT в Опере работает по другому, чем в Visual Studio 2005.А я Вам, что говорил в соседней ветке?
Alibek B.Объявил такой шаблон:Занафига? Ну да ладно. Больше шаблонов - солидней код
...
Рейтинг: 0 / 0
Какие изменения происходят в трансформации в xml/html?
    #37595192
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще похоже на то, что IE всегда использует сокращенный вариант записи пустых тегов, а Опера - всегда полный. И это не ошибка. Т.к. с точки зрения XML (а у Вас именно XML на выходе) это идентичные записи.

Обычно XSL преобразование применяют на сервере, а клиенту отдают уже сформированный документ. Тогда у Вас не будет болеть голова какой браузер стоит на клиенте.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Какие изменения происходят в трансформации в xml/html?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]