2017-01-27 3 views
0

Я использую HtmlAgilityPack для дезинфекции введенного пользователем текста и удаления любых вредных/нежелательных текстов. Проблема возникает, хотя, когда простой текст также рассматривается как HTML узелHtmlAgilityPack sanitizing string issue

Если я вхожу

a<b, c>d 

и попытаться дезинфицировать его, выход генерируемый

a<b, c="">d</b,> 

Код я использовал

HtmlDocument doc = new HthmlDocument(); 
doc.LoadHtml(value); 
// Sanitizing Logic 

var result = doc.DocumentNode.WriteTo(); 

Я попытался установить различные параметры в HtmlDocument ('OptionCheckSyntax', 'OptionAutoCl oseOnEnd ',' OptionWriteEmptyNodes '), чтобы текст не рассматривался как узел, но ничего не работало. Это известная проблема или любое возможное обходное решение?

+0

Что вы ожидаете от этого ввода? –

+0

То же, что и вход. Целью использования HAP было выделение тегов, таких как script/link/iframes и т. Д. В любом случае, чтобы HAP не рассматривал каждый «<» как начало нового узла html? – user3865946

ответ

0

IMO, вы не можете сказать HAP, чтобы не обрабатывать все «<» как начало нового узла html. Но вы можете проверить, является ли ваш html верным html или нет, используя

string html = "your-html"; 

HtmlDocument doc = new HtmlDocument(); 
doc.LoadHtml(html); 

if (doc.ParseErrors.Count() > 0) 
{ 
    //here you can ignore or do whatever you want 
}