XHTML へ

作成日 : 2007-06-10
最終更新日 :

XHTML とは

今まで私のWebページの書式は HTML 4.0 (正確には W3C/DTD HTML 4.01 Traditional) に従っていた。 しかし、今後はデータ書式としては XHTML が望ましいと考え、 過去作ったページを徐々に XHTML 1.0 形式に変換している。

ここでの問題は、その変換を手作業で行っていたため、 時間がかかることだった。 そこである程度変換を自動化するために、プログラムを書くことにした。

正規表現

XHTML への変換の大部分は、 大文字で表されているタグを小文字にすることである。

さて、タグはどのように表現されるのだろうか? 正規表現で書いてみた。

<と>に囲まれている1文字以上の文字列と考えればこうだろう。

<.+>

ところが、これでは<H1>H1をh1にする<H1> という連なりも一つのタグとみなされてしまう。したがって、 文字列には>が入らない、と考えて次のように変更する。

<[^>]+>

抽出した部分は小文字化したいので、後で参照できるよう()をつける。

(<[^>]+>)

大文字化をするメソッドは downcase である。 文字列を置換するメソッド gsub と組み合わせればよい。 元の文字列 orig から XHTML を満たす文字列 line を得るには次のようになる。

line = orig.gsub(/(<[^\>]+>)/){$1.downcase}

まりんきょ学問所Ruby の浮き輪 > XHTML へ


MARUYAMA Satosi