C-2. xsltproc を使って DocBook から HTML を作成する
とりあえず、 DocBook 形式の xml ファイルから HTML ファイルを作成してみます。
DocBook 形式の詳細な説明は後述するとして、ここではテスト用に、以下のような helloworld.xml を作成します。
helloworld.xml:
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book lang="ja">
<title>book: ハロー ワールド!</title>
<chapter>
<title>chapter: ハロー ワールド!</title>
<section>
<title>section: ハロー ワールド!</title>
<para>para: ハロー ワールド!</para>
</section>
</chapter>
</book>
日本語を使う場合は、以下の 2 点が必要です。
-
book に lang="ja" が必要。
-
ファイルを utf-8 で作成する場合は、?xml ... に encoding="utf-8" は省略できるが、それ以外の場合は、encoding="..." が必要。
さらに、以下のようなファイルも作成します。
docbook-html.xsl:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> <xsl:import href="/usr/share/docbook-xsl/html/docbook.xsl"/> <xsl:output method="html" encoding="Shift_JIS" indent="yes"/> </xsl:stylesheet>
Cygwin では /usr/share/docbook-xsl/html/docbook.xsl に DocBook を HTML に変換するための XSL が用意されていますが、デフォルト・エンコーディングが iso-8859-1 となっています。このまま利用すると、日本語がエンコードされませんので、docbook.xsl をインポートした後、エンコード部分をオーバーライドする (=書き換える) ようにします。
このインポートとオーバーラードの方法は、 XSL を利用する際の一般的方法です。
docbook-html.xsl は、どこに保存しておいてもかまいません。今回は、カレントと同一ディレクトリに置いて説明しますが、再利用することになりますので、適当なディレクトリへ保存するようにしてください。
$ xsltproc -o helloworld.html ./docbook-html.xsl helloworld.xml
または
$ xsltproc ./docbook-html.xsl helloworld.xml helloworld.html
以上で、できあがったファイル helloworld.html が以下のものです。
DocBook と xsltproc を使用して、セクション単位で HTML を分割して作成することもできます。
以下のようなファイルを用意します。
docbook-html-chunk.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0' <xsl:import href="/usr/share/docbook-xsl/html/docbook.xsl"/> <xsl:output method="html" encoding="Shift_JIS" indent="yes"/> </xsl:stylesheet>
以下のように実行します。
$ xsltproc ./docbook-html-chunk.xsl helloworld.xml Writing ch01.html for chapter Writing index.html for book
index.html:
新着記事
-
#1708. 羊好き必食、まろやかな酸味があとを引く酸湯肥羊 -- 中国東北地方の鍋料理 @東北人家新館.横浜中華街:
2026-01-03 横浜中華街・広東道の 東北人家新館にてランチ。東北人家は、中国東北地方の料理(東北菜)を出す店。ランチタイムにはいつも鍋料理が用意されていて、昼間から気軽に鍋を楽しめる。一人用の小鍋サイズで、量もちょうどいい。今回はランチメニューから酸湯肥...
-
#1707. 寒い日に沁みる、とろみスープと自家製麺「凌世麺」の蝦仁湯麺 (えびそば) @東林.横浜中華街:
2026-01-03 横浜中華街・福建路の東林(とうりん)にてランチ。あまりの寒さに、スープたっぷりの麺料理が恋しくなり、蝦仁湯麺(えびそば)を大盛りでオーダー。東林のラーメンは自家製麺を使っているのが特徴で、その麺は「凌世麺(りょうせいめん)」と名付けられてい...
-
#1706. 新年を祝う、ポンパドウル元町本店の十二支パン「午」 -- 2026年の干支パン @横浜:
2026-01-03 新年明けましておめでとうございます。旧年中はお世話になりました。本年もよろしくお願いします。写真は、ポンパドウル 元町本店の十二支パン(干支パン)、2026年は「午」🐎。カスタードクリーム入り菓子パン。
-
#1705. もちもち極太麺が暴れる、萬来亭の名物 上海炒麺 (上海焼きそば) @横浜中華街:
2026-01-03 1月3日。例年のように元町厳島神社へ初詣。その帰り道、横浜中華街の萬来亭(ばんらいてい)にてランチ。食べたい料理はいろいろ思い浮かぶが、年明け最初の訪問となれば、やはりこの店の名物上海炒麺(上海焼きそば)を外すわけにはいかない 迷わずオーダ...
-
#1704. 元旦の横浜中華街で味わう、滋味深い台湾小皿と沙茶嫩雞 @台湾美食:
2026-01-01 2026年元旦。横浜中華街・長安道の台湾美食にて晩餐。台湾美食は、その名のとおり台湾料理の店。現在の店舗は、以前は伊豆のアンテナショップだった場所をほぼ居抜きで使っており、外装にやや和風の名残がある。そのため、中華風の外観が並ぶ中華街の中で...
merita.jp