XSLT не может добавить DOCTYPE, используя xs: output - PullRequest
5 голосов
/ 13 мая 2011

Я использую XSLT для создания страницы вывода HTML.Мне нужно добавить doctype на страницу вывода.Я гуглил, и это, кажется, может заставить его работать:

<xsl:output 
  doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>

Так что я добавил его в тестовый файл преобразования, transform.xsl:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output 
  doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>

<xsl:template match="/">

<html>
<head>
    <title>test</title>
</head>
<body>
content!
</body>
</html> 

</xsl:template>
</xsl:stylesheet>

Но выходной HTML делаетне содержит тип документа ...Остальная часть примера ... выходит нормально.

Что я делаю не так, почему не добавлен тип документа?

Спасибо!

РЕДАКТИРОВАТЬ: проблема решенаЯ использую eXist и, похоже, инструкция xsl: output не будет работать, решение: список рассылки

1 Ответ

1 голос
/ 14 мая 2011

Я могу придумать два возможных ответа

(a) ваш XSLT-процессор не соответствует спецификации, или

(b) ваш XSLT-процессор не выполняет сериализацию результатадерево, что-то еще.Если сериализация выполняется чем-то другим, а не процессором XSLT (например, если вы отправляете выходные данные в DOM, а затем используете сериализатор DOM), то свойства сериализации XSLT будут игнорироваться.

...