Sdílet prostřednictvím


HtmlElement.Children Vlastnost

Definice

Získá hodnotu ze HtmlElementCollection všech podřízených položek aktuálního prvku.

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

Hodnota vlastnosti

Kolekce všech HtmlElement objektů, které mají aktuální prvek jako nadřazený.

Příklady

Následující příklad kódu prozkoumá libovolný dokument HTML a odvozuje řetězec popisující prvky s odsazením a čísly úrovní, které označují, jak hluboko jsou prvky v dokumentu vnořené. Provede to rekurzivním prohledáváním Children kolekce všech prvků počínaje elementem HTML v horní části dokumentu. Tento příklad kódu vyžaduje, aby vaše aplikace má ovládací prvek WebBrowser s názvem 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

Poznámky

Mnoho prvků uvnitř souboru HTML může mít pod sebou další prvky HTML. Kolekce Children poskytuje jednoduchý mechanismus pro zkoumání stromové struktury dokumentu.

Children zpřístupňuje pouze prvky, jejichž přímý nadřazený prvek je aktuální prvek. Pokud máte HtmlElement prvek pro TABLE , Children zobrazí se všechny TR prvky (řádku) uvnitř objektu TABLE. Chcete-li načíst TD prvky (buňky) obsažené uvnitř elementů TR , budete muset použít kolekci Children pro každý jednotlivý TR prvek, nebo použít kolekci All na HtmlElement.

U prvků v této kolekci není zaručeno, že budou ve zdrojovém pořadí.

Pokud CanHaveChildren je false, Children bude vždy prázdný.

Platí pro

Viz také