HTML/XHTML 変換ツールの使用
Microsoft Office InfoPath 2003 SDK |
HTML/XHTML 変換ツールの使用
Microsoft Office InfoPath 2003 Software Development Kit (SDK) の HTML/XHTML 変換ツールは、通常の HTML を整形式 XHTML に変換するツールです。変換後の XHTML は、InfoPath フォームで編集できます。InfoPath 以外で作成された HTML ドキュメントをフォームに挿入する場合は、このツールを使用すると便利です。InfoPath で扱えるのは整形式 XHTML だけなので、事前に HTML から変換しておく必要があります。HTML/XHTML 変換ツールは、HTML に形式の不備がある場合に、終了タグ (</p>
タグなど) の挿入や、必要に応じて自己終了タグ (<br/>
タグなど) の作成を行い、できる限りその不備を修正します。また、属性形式の不備も修正します。
警告 HTML 形式の不備の程度によっては、HTML/XHTML 変換ツールの処理が失敗することもあります。HTML 形式のすべての不備に対処できるわけではありません。たとえば、終了タグがまったくない HTML には対処できません。具体的には、<a><b>text
のような HTML です。
HTML/XHTML 変換ツールは COM (Component Object Model) ベースのオブジェクト モデルとして実装されており、1 つのオブジェクトと 2 つのメソッドで構成されています。オブジェクトは XHTMLUtilities で、メソッドは convertToXHTML と convertToXHTMLEx です。この単純なオブジェクト モデルは、COM に準拠するすべてのプログラム言語で使用できます。
2 つのメソッドは、<drive>:\Program Files\Microsoft Office 2003 Developer Resources\Microsoft Office InfoPath 2003 SDK\Tools フォルダの html2xhtml.dll ファイルに定義されています。スクリプトの中で html2xhtml.dll を参照する場合は、この DLL を事前にコンピュータに登録しておく必要があります。この他に、XHTMLUtilities オブジェクトの使い方を示した html2xhtml_sample.htm というファイルもあります。
以降の節では、XHTMLUtilities オブジェクトの 2 つのメソッドについて説明します。
convertToXHTML メソッド
指定の HTML 文字列または XHTML 文字列から XHTML 文字列を作成します。
expression.convertToXHTML(ByVal bstrHTML As String) As String
*expression * 必ず指定します。XHTMLUtilities オブジェクトへの参照を返す式を指定します。
bstrHTML 必ず指定します。文字列型 (String) の値を使用します。XHTML に変換される HTML を指定します。
*戻り値 * 文字列型 (String) の値です。変換後の XHTML 文字列を表します。
解説
HTML ではなく XML が渡されると、convertToXHTML メソッドは適切な XHTML 文字列を生成できない場合があります。
使用例
次の例では、Windows スクリプト コードを使って FileSystemObject オブジェクトへの参照を作成しています。このオブジェクトが指定のファイルから HTML 文字列を読み込み、読み込んだ HTML 文字列を convertToXHTML メソッドが XHTML 文字列に変換し、FileSystemObject が変換後の XHTML 文字列を新規ファイルに出力します。
var args = WScript.Arguments;
if (args.length != 2)
{
WScript.Echo("Usage: " + WScript.ScriptName + " <INPUTHTML> <OUTPUTXHTML>");
}
else
{
var strInputFile = args.item(0);
var strOutputFile = args.item(1);
var objFSO = WScript.CreateObject("Scripting.FileSystemObject");
var objInputFile = objFSO.OpenTextFile(strInputFile, 1 /*ForReading*/, false);
strHTML = objInputFile.ReadAll();
var oXHTMLUtils = new ActiveXObject("HTML2XHTML.XHTMLUtilities");
strXHTML = oXHTMLUtils.convertToXHTML(strHTML);
var objOutputFile = objFSO.CreateTextFile(strOutputFile, true);
objOutputFile.Write(strXHTML);
objOutputFile.Close();
}
convertToXHTMLEx メソッド
指定の HTML 文字列または XHTML 文字列から XHTML 文字列を作成し、変換に関する情報を返します。
expression.convertToXHTMLEx(ByVal bstrHTML As String, ByVal iOptions As Long, ByRef pfStatus As Long) As String
*expression * 必ず指定します。XHTMLUtilities オブジェクトへの参照を返す式を指定します。
bstrHTML 必ず指定します。文字列型 (String) の値を使用します。XHTML に変換される HTML を指定します。
iOptions 必ず指定します。長整数型 (Long) の値を使用します。XHTML への変換時に使用されるオプションです。
値 | オプション | 変換処理 |
---|---|---|
0 | DefaultNamespace | 既定の XHTML 名前空間を挿入します。 |
1 | NoDefaultNamespace | 既定の XHTML 名前空間を挿入しません。 |
pfStatus 必ず指定します。長整数型 (Long) の値を使用します。変換が行われたかどうかを示します。0 (false) の場合、変換が行われなかったことを示します。1 (true) の場合、変換が行われたことを示します。
*戻り値 * 文字列型 (String) の値です。変換後の XHTML 文字列を表します。
解説
HTML ではなく XML が渡されると、convertToXHTMLEx メソッドは適切な XHTML 文字列を生成できない場合があります。
使用例
次の例では、convertToXHTMLEx メソッドを使って、ファイルから HTML 文字列を読み込み XHTML 文字列に変換しています。
var args = WScript.Arguments;
if (args.length != 2)
{
WScript.Echo("Usage: " + WScript.ScriptName + " <INPUTHTML> <OUTPUTXHTML>");
}
else
{
var strInputFile = args.item(0);
var strOutputFile = args.item(1);
var objFSO = WScript.CreateObject("Scripting.FileSystemObject");
var objInputFile = objFSO.OpenTextFile(strInputFile, 1 /*ForReading*/, false);
var bReturn;
strHTML = objInputFile.ReadAll();
var oXHTMLUtils = new ActiveXObject("HTML2XHTML.XHTMLUtilities");
strXHTML = oXHTMLUtils.convertToXHTMLEx(strHTML, 1, bReturn);
var objOutputFile = objFSO.CreateTextFile(strOutputFile, true);
objOutputFile.Write(strXHTML);
objOutputFile.Close();
}