HtmlElement.Children Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ý.