HTML/XHTML相互変換に関する記事

対応しているHTML/XHTML規格

HTML
HTML 3.2 / HTML 4.01 Transitional / HTML 4.01 Frameset / HTML 4.01 Strict
ISO/IEC 15445 / Compact HTML
XHTML
XHTML 1.0 Transitional / XHTML 1.0 Frameset / XHTML 1.0 Strict
XHTML 1.1 / XHTML Basic 1.0 / XHTML Mobile Profile 1.0 / WML 2.0
その他特殊なもの
Internet Explorer 4.0 / Internet Explorer 5.5 / i-mode HTML ver 5.0

HTML/XHTML相互変換の際のオプション

HTMLからXHTMLへ変換する際には、既存で小文字化にチェックが入って大文字化にはできないようになります。 また、XHTMLからHTMLへ変換する際には多くのオプションが使えます。 以下に変換の挙動を挙げておきます。

タグの小文字化
<A HREF="index.html"> → <a href="index.html">
空文字要素の場合は最後に「/」を付加
<hr><br> → <hr /><br />
属性値を引用符("")で囲む
<h1 title=Outline></h1> → <h1 title="Outline"></h1>
属性値に不要な空白文字を記述しない
<font family="MS ゴシック"> → <font family="MS&nbsp;ゴシック">
属性値内で改行をしない
<a href="
index.html"></a> → <a href="index.html"></a>
属性値を省略しない
<dl compact> → <dl compact="compact">
name属性とid属性を併用 (XHTML 1.0 Transitional / XHTML 1.0 Strict)
<a name="top"> → <a name="top" id="top">
name属性の廃止・id属性の利用 (XHTML Basic 1.0 / XHTML Mobile Profile 1.0 / XHTML 1.1)
<a name="top"> → <a id="top">
lang属性とxml:lang属性を併用 (XHTML 1.0 Transitional / XHTML 1.0 Strict)
<q lang="en"> → <q lang="en" xml:lang="en">
lang属性の廃止・xml:lang属性の利用 (XHTML Basic 1.0 / XHTML Mobile Profile 1.0 / XHTML 1.1)
<q lang="en"> → <q xml:lang="en">
「&」のみはきちんと「&amp;」のように修正
<a href="love&peace.html"> → <a href="love&amp;peace.html">
完全省略可能要素(開始・終了タグ共に省略可能な要素)を付加
html/head/body要素が省略されていればこれを自動的に付加します。
タグの含有関係などはコンピュータ側が自動的に解析を行います。
スクリプトやスタイルはCDATAセクションとする (★オプション)
<script>・・・</script> → <script><![CDATA[・・・]]></script>
スクリプトやスタイルのコメントを削除する (★オプション)
<script><!--・・・--></script> → <script>・・・</script>
省略可能要素を付加する(★オプション)
  1. <li>リスト1<li>リスト2<li>リスト3 → <li>リスト1</li><li>リスト2</li><li>リスト3</li>
  2. <p>終了タグは<em>必須</em>です。 → <p>終了タグは<em>必須</em>です。</p>
  3. <ruby><rb>上海蟹<rp>(<rt>しゃんはいがに<rp<)>/ruby> →
    <ruby><rb>上海蟹</rb><rp>(</rp><rt>しゃんはいがに</rt><rp>)</rp></ruby>

(一般的に頻度の高い要素であるp・li・dt・dd・option・colgroup・rb・rp・rt要素に対応しています。 階層化(ネスト化)されているリスト構造にも正確に終了タグを付加。 ルビで使うrb・rt・rp要素にも対応していますが、文法的にはルビはXHTML1.1でのみしか使えませんのでIE系で組んでいた人でXHTML1.0に変換する際にはご注意下さい。 テーブル関係の要素は終了タグ省略には条件があるため、解析の都合上対応していません。)

XHTML変換の際のDOCTYPE宣言やhtmlタグなど

XHTML変換に関してはXHTMLへの変換アルゴリズムは?を御覧下さい。 文書型宣言などは右側に付いている小さなボタンから変更した場合には次のように設定されます。 文書型宣言に応じて、html要素などのタグも変化します。 判定時の誤りを防ぐためにもあまり文書型宣言を変えないで下さい。せいぜい\tや\nを付ける程度にしておいてください。

XHTML設定時に考慮される設定
規格 文書型宣言 html要素の設定
XHTML 1.0
Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=
"http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
XHTML 1.0
Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns=
"http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
XHTML
Basic 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html xmlns=
"http://www.w3.org/1999/xhtml" xml:lang="ja">
XHTML Mobile
Profile 1.0
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns=
"http://www.w3.org/1999/xhtml" xml:lang="ja">
XHTML 1.1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns=
"http://www.w3.org/1999/xhtml" xml:lang="ja">
WML 2.0 <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD WML 2.0//EN" "http://www.wapforum.org/dtd/wml20.dtd"> <html xmlns=
"http://www.w3.org/1999/xhtml" xmlns:wml="http://www.wapforum.org/2001/wml" xml:lang="ja">

上記に従って自動的にソフトウェア側が判断し変換を行います。

文法にそぐわない要素や属性は削除する

文法にそぐわない要素や属性を削除する事も可能です。 例えば、HTML 4.01 Transitionalではfont要素は非推奨要素といえども定義されていますが、 HTML 4.01 Strictでは廃止になっています。 しかし、font要素の場合などは「スーパー変換」によりスタイルシートで代替する方が良いでしょう。 また、必須属性(例えばimg要素のalt属性など)も自動で追加する事もできるようになっています。

Internet Explorer系はマイクロソフト社独自の要素や属性などが多々存在しますので、 それをもし、このオプションを付けてXHTML 1.1などに変換する際には十分注意して下さい。 なるべく、HTMLの文法にある程度詳しい方がここは設定する事をお勧めします。

Copyright © 1999-2005 Web Frontier   All rights reserved.