XSLT не позволит мне использовать самозакрывающиеся теги img и br - PullRequest
8 голосов
/ 13 октября 2009

У меня есть некоторый XSLT, который визуализируется в CMS Sitecore 6, но я не думаю, что эта проблема связана с продуктом.

Если у меня есть самозакрывающийся тег img или br, например:

<br />
<img src="your.example.com" />

Результирующий вывод будет:

<br>
<img src="your.example.com">

Метод вывода файла XSLT - HTML. Это должен быть XML? Я предполагаю, что самозакрывающиеся теги не являются допустимым HTML, но установка его в XML вызовет проблемы в моем выводе?

Ответы [ 3 ]

12 голосов
/ 13 октября 2009

Это просто отлично. Вы выбираете HTML, и теги <br> разрешены в HTML. Выберите XML, и тогда у вас будет то, что вы хотите.

И да, вы должны использовать метод XML, если вам нужны самозакрывающиеся теги. Я предполагаю, что вы хотите вывод XHTML, а XHTML - это документ XML.

6 голосов
/ 13 октября 2009

Когда вы работаете с самозакрывающимися тегами, вы можете столкнуться с некоторыми странными ошибками. Вот несколько примеров:

Пару лет назад в IE вся отображаемая страница была пустой, но в исходном коде отображался полный HTML. Проблема была в самозакрывающемся теге заголовка (<title/>).

Кроме того, самозакрывающиеся теги сценария (<script src="code.js"/>) могут привести к тому, что файлы JavaScript не будут загружаться, поэтому внутри вашего XSLT вам может потребоваться текст внутри тега сценария, чтобы он сам не закрывался, и получить работа.

<script src="code.js>//</script>
5 голосов
/ 13 октября 2009

В верхней части таблицы стилей вы можете указать использование XML в качестве выходного формата, а также указать конкретный DOCTYPE, например:

<xsl:output method="xml" 
    media-type="text/html" 
    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
    doctype-system="DTD/xhtml1-strict.dtd"
    cdata-section-elements="script style"
    indent="yes"
    encoding="UTF-8"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...