HtmlElement.Children Właściwość

Definicja

Pobiera wszystkie HtmlElementCollection elementy podrzędne bieżącego elementu.

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

Wartość właściwości

Kolekcja wszystkich HtmlElement obiektów, które mają bieżący element jako element nadrzędny.

Przykłady

Poniższy przykład kodu analizuje dowolny dokument HTML i tworzy ciąg opisujący elementy, z wcięciem i numerami poziomów używanymi do wskazania, jak głęboko zagnieżdżone elementy znajdują się w dokumencie. Robi to, przeszukując Children kolekcję wszystkich elementów rekursywnie, zaczynając od elementu HTML w górnej części dokumentu. Ten przykładowy kod wymaga, aby aplikacja ma kontrolkę WebBrowser o nazwie 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

Uwagi

Wiele elementów wewnątrz pliku HTML może mieć pod nimi inne elementy HTML. Kolekcja Children udostępnia prosty mechanizm eksplorowania struktury drzewa dokumentu.

Children Ujawnia tylko elementy, których bezpośredni element nadrzędny jest bieżącym elementem. Jeśli masz HtmlElement element dla TABLE elementu, Children nada wszystkie TR elementy (wiersz) wewnątrz elementu TABLE. Aby pobrać TD elementy (komórki) zawarte wewnątrz TR elementów, należy użyć Children kolekcji dla każdego pojedynczego TR elementu lub użyć kolekcji w elemecie AllHtmlElement.

Elementy w tej kolekcji nie są gwarantowane w kolejności źródłowej.

Jeśli CanHaveChildren parametr ma falsewartość , Children zawsze będzie pusty.

Dotyczy

Zobacz też