HtmlElement.Children HtmlElement.Children HtmlElement.Children HtmlElement.Children Property

定義

現在の要素のすべての子の HtmlElementCollection を取得します。Gets an HtmlElementCollection of all children of the current element.

public:
 property System::Windows::Forms::HtmlElementCollection ^ Children { System::Windows::Forms::HtmlElementCollection ^ get(); };
public System.Windows.Forms.HtmlElementCollection Children { get; }
member this.Children : System.Windows.Forms.HtmlElementCollection
Public ReadOnly Property Children As HtmlElementCollection

プロパティ値

現在の要素を親とするすべての HtmlElement オブジェクトのコレクション。A collection of all HtmlElement objects that have the current element as a parent.

次のコード例では、任意の HTML ドキュメントを調べて、要素を記述する文字列を取得します。この文字列は、ドキュメント内の要素が入れ子になっている深さを示すインデントとレベル番号を使用します。The following code example examines an arbitrary HTML document and derive a string describing the elements, with indentation and level numbers used to indicate how deeply nested the elements are in the document. これは、すべての要素Childrenのコレクションを再帰的に検索することによって行われます。これは、ドキュメントの先頭にある HTML 要素から始まります。It does this by searching the Children collection of all elements recursively, starting with the HTML element at the top of the document. このコード例では、アプリケーションにとWebBrowserいう名前WebBrowser1のコントロールが必要です。This code example requires that your application has a WebBrowser control named WebBrowser1.

private void PrintDomBegin()
{
    if (webBrowser1.Document != null)
    {
        HtmlElementCollection elemColl = null;
        HtmlDocument doc = webBrowser1.Document;
        if (doc != null)
        {
            elemColl = doc.GetElementsByTagName("HTML");
            String str = PrintDom(elemColl, new System.Text.StringBuilder(), 0);
            webBrowser1.DocumentText = str;
        }
    }
}

private string PrintDom(HtmlElementCollection elemColl, System.Text.StringBuilder returnStr, Int32 depth)
{
    System.Text.StringBuilder str = new System.Text.StringBuilder();

    foreach (HtmlElement elem in elemColl)
    {
        string elemName;

        elemName = elem.GetAttribute("ID");
        if (elemName == null || elemName.Length == 0)
        {
            elemName = elem.GetAttribute("name");
            if (elemName == null || elemName.Length == 0)
            {
                elemName = "<no name>";
            }
        }

        str.Append(' ', depth * 4);
        str.Append(elemName + ": " + elem.TagName + "(Level " + depth + ")");
        returnStr.AppendLine(str.ToString());

        if (elem.CanHaveChildren)
        {
            PrintDom(elem.Children, returnStr, depth + 1);
        }

        str.Remove(0, str.Length);
    }

    return(returnStr.ToString());
}
Private Sub PrintDomBegin()
    If (WebBrowser1.Document IsNot Nothing) Then
        Dim ElemColl As HtmlElementCollection

        Dim Doc As HtmlDocument = WebBrowser1.Document
        If (Not (Doc Is Nothing)) Then
            ElemColl = Doc.GetElementsByTagName("HTML")
            Dim Str As String = PrintDom(ElemColl, New System.Text.StringBuilder(), 0)

            WebBrowser1.DocumentText = Str
        End If
    End If
End Sub

Private Function PrintDom(ByVal ElemColl As HtmlElementCollection, ByRef ReturnStr As System.Text.StringBuilder, ByVal Depth As Integer) As String
    Dim Str As New System.Text.StringBuilder()

    For Each Elem As HtmlElement In ElemColl
        Dim ElemName As String

        ElemName = Elem.GetAttribute("ID")
        If (ElemName Is Nothing Or ElemName.Length = 0) Then
            ElemName = Elem.GetAttribute("name")
            If (ElemName Is Nothing Or ElemName.Length = 0) Then
                ElemName = "<no name>"
            End If
        End If

        Str.Append(CChar(" "), Depth * 4)
        Str.Append(ElemName & ": " & Elem.TagName & "(Level " & Depth & ")")
        ReturnStr.AppendLine(Str.ToString())

        If (Elem.CanHaveChildren) Then
            PrintDom(Elem.Children, ReturnStr, Depth + 1)
        End If

        Str.Remove(0, Str.Length)
    Next

    PrintDom = ReturnStr.ToString()
End Function

注釈

HTML ファイル内の要素の多くは、その下に他の HTML 要素を含めることができます。Many of the elements inside of an HTML file can have other HTML elements underneath them. コレクションChildrenには、ドキュメントのツリー構造を調べるための単純なメカニズムが用意されています。The Children collection provides a simple mechanism for exploring the tree structure of a document.

Childrenは、直接の親が現在の要素である要素のみを公開します。Children only exposes elements whose direct parent is the current element. HtmlElement Children要素のがある場合、は、内のTABLEすべてTRの (行) 要素を取得します。 TABLEIf you have an HtmlElement for a TABLE element, Children will give you all of the TR (row) elements inside of the TABLE. TD TR HtmlElement Children要素の内部Allに含まれる (セル) 要素を取得するには、各要素でコレクションを使用するか、でコレクションを使用する必要があります。 TRTo retrieve the TD (cell) elements contained inside of the TR elements, you will need to use either the Children collection on each individual TR element, or use the All collection on HtmlElement.

このコレクションの要素は、ソースの順序が保証されていません。Elements in this collection are not guaranteed to be in source order.

CanHaveChildren Childrenの場合、は常に空になります。 falseIf CanHaveChildren is false, Children will always be empty.

適用対象

こちらもご覧ください