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.
fonte
2012-02-12 12:04:46
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
@Deveta HtmlAgilityPack è brutto, non mi sento di raccomandare di usarlo. –
@Devela, perché no? – as9876