Thứ Hai, 10 tháng 12, 2012

Xóa các thẻ Html ra khỏi 1 chuỗi (lấy InnerText của 1 thẻ Html)

Khi có 1 object HtmlElement (System.Windows.Forms) hay HtmlNode (HtmlAgilityPack) thì việc lấy InnerText của nó khá đơn giản, chỉ cần .InnerText là ra.

Trường hợp có 1 thẻ Html nhưng ở dạng chuỗi thì sử dụng regular expression để replace những đoạn có cấu trúc là 1 tag mở hay tag đóng của 1 thẻ Html.

Có rất nhiều mẫu để tìm tag html ví dụ "<[^>]*>" hoặc "<.*?>" . Trường hợp này mình dùng mẫu  "<[^>]*>":
  1. public static string RemoveHtml(this string text)  
  2. {  
  3.     return Regex.Replace(text, "<[^>]*>"string.Empty);  
  4. }  
Test:
  1. string link = "<a href=\"http://www.hanhtranglaptrinh.com/2012/11/goi-ham-javascript-bang-webbrowser.html\">Gọi hàm Javascript bằng webbrowser control C#</a>";  
  2. string anchorText = link.RemoveHtml();//Gọi hàm Javascript bằng webbrowser control C#  

Không có nhận xét nào :

Đăng nhận xét