У меня есть документ с результатами, который отображается в Chrome, но не Mozilla/Firefox.Clientside XSLT в Mozilla/Firefox не работает
I считаю, что это потому,
Как изменить это преобразование, чтобы не иметь начальных пробелов (fiddle)?
XML:
<?xml-stylesheet href="/css/my.xsl" type="text/xsl"?>
<webpage>
<title>Book</title>
<auth>Mike</auth>
<container-content>
<p>foo1</p>
<p>foo2</p>
</container-content>
</webpage>
XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="1.0">
<xsl:output
method="xml"
indent="yes"
encoding="UTF-8"
omit-xml-declaration="yes"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"/>
<xsl:strip-space elements="*"/>
<xsl:template match="text()"/>
<xsl:template match="/">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8"/>
</head>
<body>
<xsl:copy-of select="//container-content/*"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Результат:
- a blank line here -
- and here -
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<p>foo1</p>
<p>foo2</p>
</body>
</html>
Альтернативно, я может быть неправильно, и две пустые строки не являются причиной неудачный рендер в Mozilla/Firefox. У меня проблемы с поиском неполадок на стороне клиента.
Сторона примечания: Я разработал в Saxon 6.5, считая, что Saxon наилучшим образом приближается к тому, что делают браузеры. Я могу ошибаться. Я отмечаю, что Xalan не ставит ведущие пробелы.
Процессоры в браузерах не сериализуются, вместо этого они создают дерево с памятью, так как вы знаете, что есть пустая строка? Кроме того, ваше предположение на Саксоне неверно: оно наилучшим образом соответствует тому, что требуется стандарту W3C, но ни один браузер не близок к стандарту XSLT ... – Abel
Abel .. вы правы. Я не знаю, я угадываю, основываясь на тестировании внешнего браузера. Есть ли способ просмотреть это дерево в памяти? – Paulb
Вместо того, чтобы делать rightclick> View Source, используйте rightclick> Inspect Element. Это работает как в Chrome, так и в Firefox, и покажет вам, что получилось. – Abel