HTML から DOM オブジェクトへの変換の要件
HTML コンテンツを mlreportgen.dom.HTML オブジェクトまたは mlreportgen.dom.HTMLFile オブジェクトに変換するには、HTML コンテンツは XML 解析可能でなければなりません。XML 解析可能であるとは、次のように HTML コンテンツが整形式の XML 規則に準拠する場合のことをいいます。
すべての要素の終了タグを含む。
要素の開始/終了タグに小文字を使用する。たとえば、段落要素には
<P>と</p>ではなく<p>と</P>を使用します。要素を適切に入れ子にする。別の要素の内部で要素を開いている場合、外部の要素を閉じる前に、内部の要素を閉じます。
属性値を引用符で囲む。たとえば、
<p align="center"></p>を使用します。
詳細については、www.w3schools.com/xml/xml_syntax.asp で、W3Schools による XML 規則の概要を参照してください。
ヒント
HTML コンテンツを XML 解析可能にするために、mlreportgen.utils.html2dom.prepHTMLString、mlreportgen.utils.html2dom.prepHTMLFile、および mlreportgen.utils.tidy が使用できます。変換前の HTML の準備を参照してください。
サポートされる HTML 要素と属性
HTML から DOM オブジェクトへの変換でサポートされている HTML 要素および属性を次の表に示します。サポートされていない要素および属性は無視されます。
| HTML 要素 | 属性 |
|---|---|
a | class, style, href, name |
address | class, style |
b | class, style |
big | class, style |
blockquote | class, style |
body | class, style |
br | N/A |
center | class, style |
cite | class, style |
code | class, style |
dd | class, style |
del | class, style |
dfn | class, style |
div | class, style |
dl | class, style |
dt | class, style |
em | class, style |
font | class, style, color, face, size |
h1, h2, h3, h4, h5, h6 | class, style, align |
hr | class, style, align |
i | class, style |
ins | class, style |
img | class, style, src, height, width |
kbd | class, style |
li | class, style |
mark | class, style |
nobr | class, style |
ol | class, style |
p | class, style, align |
pre | class, style |
s | class, style |
samp | class, style |
small | class, style |
span | class, style |
strike | class, style |
strong | class, style |
sub | class, style |
sup | class, style |
table | class, style, align, bgcolor, border, cellspacing, cellpadding, frame, rules, width |
tbody | class, style, align, valign |
tfoot | class, style, align, valign |
thead | class, style, align, valign |
td | class, style, bgcolor, height, width, colspan, rowspan,align, valign, nowrap |
th | class, style, bgcolor, height, width, colspan, rowspan,align, valign, nowrap |
tr | class, style, align,bgcolor, valign |
tt | class, style |
u | class, style |
ul | class, style |
var | class, style |
これらの要素の詳細については、https://developer.mozilla.org/en-US/docs/Web/HTML/Elementを参照してください。
すべての要素に対してサポートされる HTML CSS スタイル属性
HTML スタイル属性を使用して、DOM レポートに追加する HTML コンテンツを書式設定できます。スタイル属性は、カスケード スタイル シート (CSS) 書式の文字列です。
以下の CSS 書式がサポートされます。
background-colorborderborder-bottomborder-bottom-colorborder-bottom-styleboder-bottom-widthborder-colorborder-leftborder-left-colorborder-left-styleboder-left-widthborder-rightborder-right-colorborder-rigtht-styleborder-right-widthborder-styleborder-topborder-top-colorborder-top-styleborder-top-widthborder-widthcolorcounter-incrementcounter-resetdisplayfont-familyfont-sizefont-stylefont-weightheightline-heightlist-style-typemarginmargin-bottommargin-leftmargin-rightmargin-toppaddingpadding-bottompadding-leftpadding-rightpadding-toptext-aligntext-decorationtext-indentvertical-alignwhite-spacewidth
これらの書式の詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/Referenceを参照してください。
HTML 文字エンティティのサポート
英国ポンド記号、米国ドル記号、予約された XML マークアップ文字などの特殊文字を含む HTML コンテンツを追加できます。XML マークアップの特殊文字は、>、<、&、" および ' です。特殊文字を含めるには、HTML の名前または数字による文字参照を使用します。たとえば、追加する HTML コンテンツに左の山かっこ (<) を含めるには、以下の文字エンティティ参照のいずれかを使用します。
名前による文字エンティティ参照
<数字による文字エンティティ参照
&003c;
詳細については、https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references を参照してください。
DOCTYPE 宣言
DOM レポートに追加する HTML コンテンツは、ドキュメント タイプ宣言 (https://en.wikipedia.org/wiki/Document_type_declaration参照) を含む必要はありません。コンテンツがドキュメント タイプ宣言を含む場合、以下の条件を満たさなければなりません。
コンテンツが文字エンティティ参照 (特殊文字) を含む場合、ドキュメント タイプ宣言は、参照されるエンティティを定義するドキュメント タイプ定義 (DTD) を参照しなければならない。たとえば、次の宣言はすべての HTML 文字エンティティを定義する DTD ファイルを指定します。
<!DOCTYPE html SYSTEM "html.dtd">html.dtdは、MATLAB® Report Generator™ ソフトウェアに含まれます。ドキュメント タイプ宣言が DTD ファイルを参照する場合、宣言によって指定されるパスに有効な DTD ファイルが存在しなければならない。そうでない場合、コンテンツを追加すると DTD 解析エラーが発生します。たとえば、次の宣言は解析エラーを引き起こします。
<!DOCTYPE html SYSTEM "foo.dtd">追加されるコンテンツが文字エンティティ参照を含まない場合、ドキュメント タイプ宣言が DTD ファイルを参照する必要はない。たとえば、次の宣言は特殊文字を使用しないコンテンツに対して機能します。
<!DOCTYPE html>
ヒント
ドキュメント タイプ宣言の問題を避けるには、DOM レポートに追加する既存の HTML コンテンツから宣言を削除します。コンテンツが宣言を含まない場合、DOM は HTML 文字エンティティ セット全体を定義する有効な宣言を付加します。