HtmlElement.Children Propriété

Définition

Obtient un HtmlElementCollection de tous les enfants de l'élément actuel.

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

Valeur de propriété

Collection de tous les objets HtmlElement qui ont pour parent l'élément actuel.

Exemples

L’exemple de code suivant examine un document HTML arbitraire et dérive une chaîne décrivant les éléments, avec des numéros de retrait et de niveau utilisés pour indiquer la profondeur imbriquée des éléments dans le document. Pour ce faire, il effectue une recherche récursive dans la Children collection de tous les éléments, en commençant par l’élément HTML en haut du document. Cet exemple de code nécessite que votre application dispose d’un WebBrowser contrôle nommé 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

Remarques

La plupart des éléments à l’intérieur d’un fichier HTML peuvent avoir d’autres éléments HTML en dessous. La Children collection fournit un mécanisme simple pour explorer l’arborescence d’un document.

Children expose uniquement les éléments dont le parent direct est l’élément actuel. Si vous avez un HtmlElement pour un TABLE élément, Children vous donnera tous les TR éléments (ligne) à l’intérieur du TABLE. Pour récupérer les TD éléments (cellule) contenus à l’intérieur TR des éléments, vous devez utiliser la Children collection sur chaque élément individuel TR ou utiliser la All collection sur HtmlElement.

Il n’est pas garanti que les éléments de cette collection soient dans l’ordre source.

Si CanHaveChildren a la valeur false, Children sera toujours vide.

S’applique à

Voir aussi