2013-06-01 21 views
9

Tôi đang sử dụng phương pháp sau để gỡ bỏ tất cả html từ chuỗi:HTMLagilitypack không xóa tất cả các thẻ html Làm thế nào tôi có thể giải quyết vấn đề này một cách hiệu quả?

public static string StripHtmlTags(string html) 
     { 
      if (String.IsNullOrEmpty(html)) return ""; 
      HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
      doc.LoadHtml(html); 
      return doc.DocumentNode.InnerText; 
     } 

Nhưng nó dường như bỏ qua thẻ sau này: […]

Vì vậy, chuỗi trả về cơ bản:

> A hungry thief who stole a rack of pork ribs from a grocery store has 
> been sentenced to spend 50 years in prison. Willie Smith Ward felt the 
> full force of the law after being convicted of the crime in Waco, 
> Texas, on Wednesday. The 43-year-old may feel slightly aggrieved over 
> the severity of the […] 

thế nào có thể Tôi đảm bảo rằng các loại thẻ này bị tước bỏ?

Bất kỳ loại trợ giúp nào đều được đánh giá cao, cảm ơn.

+0

'… 'không là một thẻ HTML. Thẻ có dấu ngoặc nhọn. Đây là thực thể được mã hóa. – jessehouwing

Trả lời

31

Hãy thử HttpUtility.HtmlDecode

public static string StripHtmlTags(string html) 
{ 
    if (String.IsNullOrEmpty(html)) return ""; 
    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
    doc.LoadHtml(html); 
    return HttpUtility.HtmlDecode(doc.DocumentNode.InnerText); 
} 

HtmlDecode sẽ chuyển đổi […] để […]

+0

Tuyệt vời, tôi sẽ cố gắng cảm ơn. – Obsivus

+0

Nó hoạt động hoàn hảo cảm ơn bạn. – Obsivus

+0

Nếu anh ấy giúp bạn, hãy xem xét "chấp nhận" câu trả lời của anh ấy. :) –