2013-05-19 37 views
5

我需要從我的webbrowser.c獲取所有屬性。我使用GetAttribute(),但是這種方式需要知道屬性的名稱。 想象一下,我不知道我的瀏覽器中有什麼。 我的C#代碼:在Web瀏覽器中返回HtmlElement的所有屬性

 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(); 
     } 

我尋覓了很多,但我沒有找到任何東西是有用的。

+0

我也使用HTML敏捷性包(http://htmlagilitypack.codeplex.com/wikipage?title=Examples)嘗試,但它沒有這樣一個很好的解決方案。 – Pedram

回答

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(); 
}