Evaluar y enviar comentarios
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2008/.NET Framework 3.5

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
HtmlElement (Clase)

Actualización: noviembre 2007

Representa un elemento HTML dentro de una página Web.

Espacio de nombres:  System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)
Visual Basic (Declaración)
<PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")> _
Public NotInheritable Class HtmlElement
Visual Basic (Uso)
Dim instance As HtmlElement
C#
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
public sealed class HtmlElement
Visual C++
[PermissionSetAttribute(SecurityAction::LinkDemand, Name = L"FullTrust")]
public ref class HtmlElement sealed
J#
/** @attribute PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust") */
public final class HtmlElement
JScript
public final class HtmlElement

La clase HtmlElement representa cualquier tipo de elemento que pueda haber en un documento HTML, como BODY, TABLE y FORM, entre otros. La clase expone las propiedades más comunes que es previsible encontrar en todos los elementos.

La mayor parte de los elementos pueden tener elementos secundarios: otros elementos HTML situados por debajo de ellos. Utilice la propiedad CanHaveChildren para comprobar si un elemento determinado tiene elementos secundarios, y la colección Children para recorrer en iteración estos elementos. La propiedad Parent devuelve el objeto HtmlElement en el que está anidado el elemento actual.

Necesitará obtener acceso con frecuencia a los atributos, propiedades y métodos del elemento subyacente que el objeto HtmlElement no expone directamente, como el atributo SRC de un elemento IMG o el método Submit de FORM. Los métodos GetAttribute y SetAttribute le permiten recuperar y modificar cualquier atributo o propiedad de un elemento específico, mientras que el método InvokeMember proporciona acceso a cualquiera de los métodos que no se exponen en el Modelo de objetos de documento (DOM, Document Object Model) administrado. Si la aplicación dispone del permiso de código no administrado, también podrá obtener acceso a las propiedades y a los métodos no expuestos con el atributo DomElement.

Utilice la propiedad TagName para comprobar si un elemento es de un tipo específico.

Cualquier documento HTML puede modificarse en tiempo de ejecución. Puede crear nuevos objetos HtmlElement con el método CreateElement de HtmlDocument y agregarlos a otro elemento utilizando el método AppendChild o InsertAdjacentElement. También puede crear los elementos como etiquetas HTML y asignárselos a la propiedad InnerHtml de un elemento existente.

En el siguiente ejemplo de código se muestra cómo examinar un documento HTML arbitrario y cómo derivar una cadena que describa los elementos HTML, con una sangría y números de nivel que indiquen la profundidad con la que están anidados los elementos del documento. Este ejemplo de código requiere que la aplicación hospede un control WebBrowser denominado WebBrowser1.

Visual Basic
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
C#
        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());
        }
System..::.Object
  System.Windows.Forms..::.HtmlElement
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker