2010-04-20 8 views
6

Nếu tôi có một chuỗi có chứa html từ một trang tôi vừa được trả lại từ một bài đăng HTTP, làm thế nào tôi có thể biến nó thành thứ gì đó sẽ cho phép tôi dễ dàng duyệt qua DOM?Có một đối tượng trong C# cho phép dễ dàng quản lý HTML DOM không?

Tôi đã tìm đối tượng HtmlDocument sẽ có ý nghĩa, nhưng nó không có hàm tạo. Có bất kỳ loại nào cho phép dễ dàng quản lý HTML DOM không?

Cảm ơn,
Matt

Trả lời

9

Các HtmlDocument là một thể hiện của một tài liệu đã được nạp bởi một điều khiển WebBrowser. Vì vậy không có ctor.

Html Agility Pack đến nay là thư viện tốt nhất mà tôi đã sử dụng cho mục đích này

Một ví dụ từ wiki CodePlex

HtmlDocument doc = new HtmlDocument(); 
doc.Load("file.htm"); 
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href]")) 
{ 
    HtmlAttribute att = link["href"]; 
    att.Value = FixLink(att); 
} 
doc.Save("file.htm"); 

Ví dụ cho thấy tải tệp nhưng có quá tải cho phép bạn tải một chuỗi hoặc một luồng.  

+0

Tuyệt vời, cảm ơn! – Matt