HtmlElement.Children Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
HtmlElementCollection Geçerli öğenin tüm alt öğelerini alır.
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
Özellik Değeri
Geçerli öğeyi üst öğe olarak içeren tüm HtmlElement nesnelerin koleksiyonu.
Örnekler
Aşağıdaki kod örneği rastgele bir HTML belgesini inceler ve öğelerin belgede ne kadar iç içe olduğunu belirtmek için kullanılan girinti ve düzey numaralarıyla birlikte öğeleri açıklayan bir dize türetmektedir. Bunu, belgenin Children
en üstündeki HTML öğesinden başlayarak tüm öğelerin koleksiyonunda özyinelemeli olarak arama yaparak yapar. Bu kod örneği, uygulamanızın adlı WebBrowser1
bir WebBrowser denetime sahip olmasını gerektirir.
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
Açıklamalar
Bir HTML dosyasının içindeki öğelerin birçoğunun altında başka HTML öğeleri olabilir. Koleksiyon, Children belgenin ağaç yapısını keşfetmek için basit bir mekanizma sağlar.
Children yalnızca doğrudan üst öğesi geçerli öğe olan öğeleri kullanıma sunar. Bir TABLE
öğe için öğeniz HtmlElement varsa, Children içindeki TABLE
tüm TR
(satır) öğeleri size verir. Öğelerin içinde TR
yer alan (hücre) öğeleri almak TD
için, her bir TR
öğede koleksiyonu kullanmanız Children veya üzerinde koleksiyonunu HtmlElementkullanmanız All gerekir.
Bu koleksiyondaki öğelerin kaynak sırada olması garanti edilmiyor.
ise CanHaveChildren false``Children
, her zaman boş olur.