5

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 には doctype... が含まれていません。例の残りの部分は...うまくいきます。

doctype が追加されないのはなぜですか?

ありがとう!

編集: 問題は解決しました。私は eXist を使用していますが、xsl:output 命令が機能しないようです。解決策:メーリング リスト

4

1 に答える 1

1

2つの可能な答えを考えることができます

(a) XSLT プロセッサが仕様に準拠していない、または

(b) XSLT プロセッサが結果ツリーのシリアル化を行っていません。別の処理を行っています。シリアル化が XSLT プロセッサ以外で行われる場合 (たとえば、出力を DOM に送信してから DOM シリアライザーを使用する場合)、XSLT シリアル化プロパティは無視されます。

于 2011-05-13T23:21:21.013 に答える