2012-02-11 5 views

risposta

2

Se wbMain è il vostro controllo WebBrowser1, procedere come segue.

In primo luogo, è necessario ottenere un riferimento al proprio elemento, diciamo che si desidera accedere al primo collegamento <A> della propria pagina, è possibile scorrere tutto se lo si desidera.

Questo è in VB, ma è la stessa cosa in C#, solo sintassi diversa.

Dim i As Integer 
Dim aElement As HTMLAnchorElement = wbMain.Document.All.getElementByTagName("A")(0) 

For i = 0 To aElement.attributes.length - 1 
    MsgBox aElement.attributes.item(i).name & "=" & aElement.attributes.item(i).value 
Next i 

Questo ciclo volontà attraverso tutti gli attributi e visualizzarla in una MSGBOX in un formato name=value.

Se si desidera recuperarlo per nome (nome attributi) è sufficiente chiamare utilizzando aElement.getAttribute("target") per recuperare il valore degli attributi di destinazione dal collegamento.

Se si desidera confermare l'oggetto/elemento corretto, è sufficiente eseguire uno aElement.outerHTML per ottenere solo il codice HTML completo per quell'elemento.

Dal momento che sto usando una versione pre.NET, sentiti libero di cambiare la dichiarazione da HTMLAnchorElement a IHTMLAnchorElement se ti dà problemi, ovviamente puoi semplicemente usare IHTMLElement se vuoi passare attraverso tutti gli elementi in una pagina, allora tutto quello che dovrete fare è wbMain.Document.All (0) per il primo elemento in una pagina, o di ciclo fino a quando .All.length - 1 passare attraverso tutto. Ricorda che se si utilizza cicli for innestati, non utilizzare i due volte, utilizzare j per uno di loro :).

Fatemi sapere se questo risponde alla vostra domanda o se c'è altro che posso fare per aiutarvi con il vostro problema.

2

è possibile utilizzare per analizzare HtmlAgilityPack html doc in u r caso u possibile utilizzare

var doc = new HtmlAgilityPack.HtmlDocument(); 
    doc.Load(FileName); 
    var node = doc.DocumentNode.SelectNodes("//NameofHtmlTag")[0]; 
    foreach (HtmlAgilityPack.HtmlAttribute attri in node.Attributes) 
    { 
     //iterate through attributes 
    }  
+0

Grazie per la risposta, ma in questo caso devo preservare il modo in cui IE analizza il documento. Per questo motivo, non posso usare HAP. Sto cercando una soluzione utilizzando HTMLElement o codice non gestito nel peggiore dei casi. – Devela

+0

@Deveta HtmlAgilityPack è brutto, non mi sento di raccomandare di usarlo. –

+0

@Devela, perché no? – as9876