C++Builder2009でMSHTMLを使ってHTMLを解析する

MSHTML COMコンポーネントという存在を知ったので、試しにC++Builder2009で使ってみました。
このCOMコンポーネントを使うと、HTMLの解析が簡単にできそうです。

Variant htmlfile = Variant::CreateObject("htmlfile");
WideString html = "<html><head><title>タイトル</title></head><body>ボディ</body></html>";
htmlfile.OleFunction("write", html);

UnicodeString title = htmlfile.OlePropertyGet("title"); //=>タイトル

Variant htmlElement = htmlfile.OlePropertyGet("body");
UnicodeString body = htmlElement.OlePropertyGet("innerHtml"); //=>ボディ

MSHTML COMコンポーネントは多機能なので、もっといろんなことができそうです。

MSHTMLとは関係のない話ですが、「WideString html = …」の部分を「UnicodeString html = …」とすると駄目でした。
自動的に型変換されると思ったのですが。
このあたりの挙動について、理解不足のようです。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください