我想在網頁瀏覽器上顯示DOM,所有註釋和html,頭部,主體等都保留其結構。目前,我只能從節點html開始。 Document.All沒有幫助。 我可以看到的唯一方法是webBrowser1.Document.Body,但我會錯過評論,頭等。然後,如果我去與Document.All然後給我所有的節點。如何從C#WebBrowser獲取所有頂級htmlelements?
2
A
回答
1
我認爲唯一的選擇與WebBrowser控件來得到你想要的是使用Document.All
。雖然這給出了所有元素不僅僅是頂級元素,但每個元素都有一個.Parent
元素屬性,因此您可以遍歷它們(或使用Linq),並只獲取具有<body>
或<head>
作爲父元素的元素。
0
嘗試使用HTMLAgilityPack,它支持Xpath,因此您可以根據需要獲取任意節點。
0
正如hienvd_csuit建議的那樣,我認爲HTML Agility Pack是您的最佳選擇。如果您仍想使用WebBrowser
,則可能的解決方案是使用dynamic
(需要.NET 4+)直接訪問非託管DOM。舉例來說,你可以做這樣的事情:
dynamic dom = wb.Document.DomDocument;
foreach (dynamic node in dom.childNodes)
{
Console.WriteLine ("{0} - {1} - {2}", node.nodeType, node.nodeName, node.nodeValue);
}
當然,你需要知道的DOM結構,因爲IntelliSense不動態對象的工作;你可以找到一些關於它的信息here。
0
如果一個特定的項目有一個子節點或者沒有,你應該能夠查詢(有一個屬性),你也可以查詢它是否是父節點,或者如果一個特定的項目有父項目,如果它放棄,並且可以繼續查詢父項,如item.parent.parent(請檢查intellisense中的確切對象/屬性名稱),如果它不返回任何內容,則表示只有一個父項(假定item.parent不會返回任何東西),並且您可以組織多少層次的節點可以/必須是。因此,根據孩子或家長的檢查方法(或兩者),您可以選擇將其包含在收藏中或丟棄。
當然,您可能會獲得許多「P」標記或DIV/SPAN標記作爲頂級節點/項目。所以,我假設有一個機會,你不會想要這些,所以隨時丟棄他們,並查詢他們的孩子。
相關問題
- 1. 如何從網站獲取HtmlElements
- 2. 從WebBrowser控件獲取所有文本
- 3. 使用WebBrowser控件 - 隱藏所有HTMLElements除了一個Div
- 4. 從NotesView獲取所有頂級條目值
- 5. 獲取頂級值
- 6. 從WebBrowser獲取源代碼WPF C#
- 7. 在F#/ C中從WebBrowser獲取cookies#
- 8. 如何獲得所有頂級窗口javafx?
- 9. 從iframe中獲取頂級href和innerHTML
- 10. 從iFrame內部獲取頂級網址
- 11. 從Hashtable獲取頂級元素
- 12. 獲取所有的子類別中的頂級類別
- 13. wordpress獲取數組中的所有頂級菜單
- 14. 獲取資源中所有頂級目錄的列表:// * URLs
- 15. C#:如何從WebBrowser元素獲取文檔標題?
- 16. 如何從webbrowser c#for windows phone登錄獲取userID?
- 17. 獲取頂級域名
- 18. 獲取最頂級的UIViewController
- 19. 獲取頂級父的MySQL
- 20. 獲取頂級單個表
- 21. 如何從office 365 API響應主體獲取頂級會話
- 22. 如何從Facebook應用程序獲取頂級網址?
- 23. 如何從嵌套類別表中獲取頂級父項?
- 24. 如何從場景中獲取非最頂級的qgraphicsitem
- 25. 如何使用C#獲取所有CheckBoxes?
- 26. Android:如何獲取活動的頂級父級佈局
- 27. 獲取UIBezierPath的所有頂點
- 28. 獲取矩形的所有頂點
- 29. 從Parse.com獲取所有對象C#(Unity)
- 30. 如何從CouchDB獲取所有設計?
爲什麼不簡單地保存['WebClient.DownloadString'](http://msdn.microsoft.com/en-us/library/system.net.webclient.downloadstring.aspx)的結果? – Oded
我需要使用網絡瀏覽器...用戶將使用網絡瀏覽器。 – Devela
那麼,你首先需要向我們描述你正在嘗試做什麼 - 目前的問題是無法回答的。 – Oded