Silphireの日記: XSLT(3) 2
日記 by
Silphire
<output method="xml"
encoding="utf-8"
doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
media-type="application/xhtml+xml" />
として、XHTMLを出力しようと試みています。
libxslt付属のxsltprocでは期待通りにXHTMLが出力されているように見えるのですが、Firebirdで変換して結果を表示してみると、ただのXMLとして認識されているようです。まるでOperaにスタイルシート無しのXMLを喰わせたような表示結果になります。
<output method="html">としてHTMLを出力すると、期待通りの出力結果になりました。
ひょっとして、こういう物なのでしょうか。
拡張子 (スコア:1)
うちでは
<xsl:output method="xml" encoding="UTF-8" indent="no"
doctype-public="-//W3C// DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
で.htmlに出力してうまく表示できてます。Mozillaですが。(<a id="hoge" />がうまくいかなかったので、<a></a>にしたのは秘密です。) ちなみにXSLTでDobook->LaTeX/XHTMLやら複数のXHTMLファイルを結合したりしてます。最初はXIncludeを使ってたんですが、XSLTのdocument()が便利です。
例:
<xsl:copy-of select="document($content-file)//xhtml:div[@class='article']"/></a>
Re:拡張子 (スコア:1)
xsltprocでXMLをXHTMLに変換して出力する分にはXHTMLになるのに、その返還前のXMLをFirebirdに喰わせると、変換はされているようだけれどXHTMLとして認識してくれない。という事を書くつもりでした。
xsltprocでいったん出力した結果をブラウザに喰わせる分には、出力したファイルの拡張子がxmlでもhtmlでもうまくいっています。