HtmlDocument クラスとは? わかりやすく解説

HtmlDocument クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

WebBrowser コントロールホストされている HTML ドキュメントに、トップレベルプログラムによるアクセス提供します

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public NotInheritable Class
 HtmlDocument
public sealed class HtmlDocument
public ref class HtmlDocument sealed
public final class HtmlDocument
public final class HtmlDocument
解説解説

HtmlDocument は、HTML DOM (Document Object Model) とも呼ばれる Internet Explorerドキュメント オブジェクトマネージ ラッパー提供しますWebBrowser コントロールDocument プロパティ使用してHtmlDocumentインスタンス取得します

HTML ドキュメント内の HTML タグは、相互に入れ子できます。したがってHtmlDocumentドキュメント ツリー表しその子HtmlElement クラスインスタンスなります単純な HTML ファイル次のコード例示します

<HTML>
    <BODY>
        <DIV name="Span1">Simple HTML Form</DIV>
        <FORM>
            <SPAN name="TextLabel">Enter Your Name:</SPAN>
            <INPUT type="text" size="20" name="Text1">
        </FORM>
    </BODY>
</HTML>

この例では、HtmlDocument は、HTML タグ内のドキュメント全体表しますBODYDIVFORM、および SPAN の各タグは、個別HtmlElement オブジェクト表されます。

このツリー内の要素には、複数方法アクセスできますBODY タグおよびそのすべての子にアクセスするには、Body プロパティ使用しますActiveElement プロパティ使用すると、ユーザー入力フォーカスがある HTML ページ上の要素HtmlElementアクセスできますHTML ページ内のすべての要素には名前を割り当てることができます。All コレクションは、対応する名前インデックスとして使用して、各 HtmlElement へのアクセス提供します。GetElementsByTagName は、DIVTABLE など、指定されHTML タグ名を持つすべての HtmlElement オブジェクトの HtmlElementCollection を返します。GetElementById は、指定され一意ID対応する単一HtmlElement返します。GetElementFromPoint は、指定されマウス ポインタ座標位置する画面確認できる HtmlElement返します

Forms コレクションおよび Images コレクション使用してユーザー入力フォームまたはグラフィックスを表す要素それぞれ繰り返すこともできます

HtmlDocument は、Internet ExplorerDHTML DOM で実装されるアンマネージ インターフェイス (IHTMLDocumentIHTMLDocument2IHTMLDocument3、および IHTMLDocument4) に基づいてます。これらのアンマネージ インターフェイスで最も頻繁に使用されるプロパティおよびメソッドだけが、HtmlDocument によって公開されます。その他のすべてのプロパティおよびメソッド直接アクセスするには、DomDocument プロパティ使用します。このプロパティを、目的のアンマネージ インターフェイス ポインタキャストできます

HTML ドキュメントにはフレーム含まれている場合ありますフレームは、WebBrowser コントロール内の別のウィンドウです。各フレームには、独自の HTML ページ表示されます。Frames コレクションは、Window プロパティから使用できますWindow プロパティ使用すると、表示されページサイズ変更ドキュメントスクロール、またはユーザーへの警告およびプロンプト表示も可能です。

HtmlDocument は、HTML ページホストするときに処理する最も一般的なイベント公開しますインターフェイス直接公開されないイベント場合、AttachEventHandler を使用してイベントハンドラ追加できます

HTML ファイルには、JScriptVBScript などのアクティブ スクリプト言語記述されコードカプセル化する SCRIPT タグ含まれている場合あります。InvokeScript メソッドは、SCRIPT タグ定義されプロパティおよびメソッド実行します

メモメモ

HtmlDocument のほとんどのプロパティメソッド、およびイベントは、アンマネージ DOM の場合と同じ名前を保持していますが、一部.NET Framework との一貫性維持するために変更されています。

使用例使用例

Northwind データベースデータ使用して、CreateElement によって HTML TABLE動的に作成するコード例次に示します。AppendChild メソッド使用されセル (TD 要素) を行 (TR 要素) に追加してから、行をテーブル追加し最後にテーブル現在のドキュメント末尾追加します。このコード例では、アプリケーションWebBrowser1 という名前の WebBrowser コントロール存在する必要があります

Private Sub DisplayCustomersTable()
    ' Initialize the database connection.
    Dim CustomerData As New
 DataSet()
    Dim CustomerTable As DataTable

    Try
        Dim DBConn As New
 SqlConnection("Data Source=CLIENTUE;Integrated Security=SSPI;Initial
 Catalog=Northwind;")
        Dim DBQuery As New
 SqlDataAdapter("SELECT * FROM CUSTOMERS", DBConn)
        DBQuery.Fill(CustomerData)
    Catch dbEX As DataException

    End Try

    CustomerTable = CustomerData.Tables("Customers")

    If (Not (WebBrowser1.Document Is
 Nothing)) Then
        With WebBrowser1.Document
            Dim TableElem As HtmlElement =
 .CreateElement("TABLE")
            .Body.AppendChild(TableElem)

            Dim TableRow As HtmlElement

            ' Create the table header. 
            Dim TableHeader As HtmlElement
 = .CreateElement("THEAD")
            TableElem.AppendChild(TableHeader)
            TableRow = .CreateElement("TR")
            TableHeader.AppendChild(TableRow)

            Dim HeaderElem As HtmlElement
            For Each Col As
 DataColumn In CustomerTable.Columns
                HeaderElem = .CreateElement("TH")
                HeaderElem.InnerText = Col.ColumnName
                TableRow.AppendChild(HeaderElem)
            Next

            ' Create table rows.
            Dim TableBody As HtmlElement =
 .CreateElement("TBODY")
            TableElem.AppendChild(TableBody)
            For Each Row As
 DataRow In CustomerTable.Rows
                TableRow = .CreateElement("TR")
                TableBody.AppendChild(TableRow)
                For Each Col As
 DataColumn In CustomerTable.Columns
                    Dim Item As Object
 = Row(Col)
                    Dim TableCell As HtmlElement
 = .CreateElement("TD")
                    If Not (TypeOf
 (Item) Is DBNull) Then
                        TableCell.InnerText = CStr(Item)
                    End If
                    TableRow.AppendChild(TableCell)
                Next
            Next

        End With
    End If
End Sub
private void DisplayCustomersTable()
{
    DataSet customersSet = new DataSet();
    DataTable customersTable = null;
    SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM
 Customers", "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");
    sda.Fill(customersTable);
    customersTable = customersSet.Tables[0];

    if (webBrowser1.Document != null)
    {
        HtmlElement tableRow = null;
        HtmlElement headerElem = null;

        HtmlDocument doc = webBrowser1.Document;
        HtmlElement tableElem = doc.CreateElement("TABLE");
        doc.Body.AppendChild(tableElem);

        HtmlElement tableHeader = doc.CreateElement("THEAD");
        tableElem.AppendChild(tableHeader);
        tableRow = doc.CreateElement("TR");
        tableHeader.AppendChild(tableRow);

        foreach (DataColumn col in customersTable.Columns)
        {
            headerElem = doc.CreateElement("TH");
            headerElem.InnerText = col.ColumnName;
            tableRow.AppendChild(headerElem);
        }

        // Create table rows.
        HtmlElement tableBody = doc.CreateElement("TBODY");
        tableElem.AppendChild(tableBody);
        foreach (DataRow dr in customersTable.Rows)
        {
            tableRow = doc.CreateElement("TR");
            tableBody.AppendChild(tableRow);
            foreach (DataColumn col in customersTable.Columns)
            {
                Object dbCell = dr[col];
                HtmlElement tableCell = doc.CreateElement("TD");
                if (!(dbCell is DBNull))
                {
                    tableCell.InnerText = dbCell.ToString();
                }
                tableRow.AppendChild(tableCell);
            }
        }
    }
}
継承階層継承階層
System.Object
  System.Windows.Forms.HtmlDocument
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「HtmlDocument クラス」の関連用語

HtmlDocument クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



HtmlDocument クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS