就目前而言,我認爲是能夠從包含HTML字符串操作DOM最好的辦法是:如何從C#中的HTML字符串操縱DOM?
WebBrowser webControl = new WebBrowser();
webControl.DocumentText = html;
HtmlDocument doc = webControl.Document;
有兩個問題:
- 需要
WebBrowser
對象! - 這不能與多個線程一起使用;我需要的東西可以在不同的線程上工作(除了主線程)。
任何想法?
就目前而言,我認爲是能夠從包含HTML字符串操作DOM最好的辦法是:如何從C#中的HTML字符串操縱DOM?
WebBrowser webControl = new WebBrowser();
webControl.DocumentText = html;
HtmlDocument doc = webControl.Document;
有兩個問題:
WebBrowser
對象!任何想法?
我搜索了GooglePlex for HTML,發現Html Agility Pack我不知道是否適合這種情況,我現在正在下載它來嘗試一下。
Html敏捷包是真棒 – 2008-10-24 00:00:36
取決於你正在嘗試做的(也許你可以給我們更多的細節?),並根據結構良好,在HTML與否,你可以將它轉換爲一個XmlDocument
:
System.Xml.XmlDocument x = new System.Xml.XmlDocument();
x.LoadXml(html); // as long as html is well-formed, i.e. XHTML
然後,您可以輕鬆操作它,而無需使用WebBrowser
實例。至於線程,我不知道有關執行XmlDocument
知道該部分的答案。
如果文件不是以適當的形式,你可以使用NTidy(用於HTML Tidy .NET包裝)得到它的形狀第一;我曾經爲一個項目做過一次這樣的事情,但它確實不錯。
該文件可能沒有很好的格式,這就是爲什麼XmlDocument可能無法正常工作,但我很欣賞替代方案。 – 2008-10-23 23:56:21
JasonBunting已經發布了這個,但它真的可以在HTML整理文件中使用.net包裝並將其加載到XmlDocument中。
我已經使用這個.NET包裝前:
http://www.codeproject.com/KB/cs/ZetaHtmlTidy.aspx
而且有些實施這樣說:
string input = "<p>crappy html<br <img src=foo></div>";
HtmlTidy tidy = new HtmlTidy()
string output = tidy.CleanHtml(input, HtmlTidyOptions.ConvertToXhtml);
XmlDocument doc = new XmlDocument();
doc.LoadXml(output);
很抱歉,如果認爲是轉貼:)
這是一個老問題。現在有:
http://msdn.microsoft.com /en-us/library/aa290341%28v=vs.71%29.aspx – ThunderGr 2013-10-29 07:32:31