Вернуть все атрибуты HtmlElement в веб-браузере

Мне нужно получить все атрибуты из моего веб-браузера. В настоящее время я использую GetAttribute(), но таким образом мне нужно знать имя атрибутов. Представьте, что я не знаю, что находится в моем веб-браузере. Мой код С#:

        StringWriter strWriter = new StringWriter();            
        XmlWriter xWriter = XmlWriter.Create(strWriter, new XmlWriterSettings() { Indent = true });
        xWriter.WriteStartElement("Items");
        foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("TEXTAREA"))
        {
            xWriter.WriteStartElement("Item");
            xWriter.WriteElementString("GUID", el.Id);
            xWriter.WriteElementString("Type", el.GetAttribute("type").ToUpper());
            xWriter.WriteElementString("Name", el.Name);
            xWriter.WriteElementString("Value", el.GetAttribute("value"));
            xWriter.WriteElementString("MaxLength", el.GetAttribute("maxlength"));
            xWriter.WriteEndElement();
        }

Я много искал, но ничего полезного не нашел.


person Pedram    schedule 19.05.2013    source источник
comment
Я также пытался использовать Html Agility Pack(htmlagilitypack.codeplex.com/wikipage?title=Examples) но это было не такое уж хорошее решение.   -  person Pedram    schedule 19.05.2013


Ответы (1)


Я не пробовал, но думаю, это может быть решением или первым шагом. Во-первых, вы должны сослаться на microsoft.mshtml

foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("TEXTAREA"))
{

    HTMLTextAreaElement textarea = (HTMLTextAreaElement)el.DomElement;

    xWriter.WriteStartElement("Item");
    xWriter.WriteElementString("GUID", el.Id);

    foreach (var attribute in textarea.attributes)
    {
         String name = attribute.name;
         String value = attribute.value;

         xWriter.WriteElementString(name, value);
    }

    xWriter.WriteEndElement();
}
person Kai    schedule 19.05.2013