HtmlAgilityPack удаляет вложенные разделы и разделы из html, но сохраняет содержимое

#c# #replace #html-agility-pack

#c# #заменить #html-agility-pack

Вопрос:

У меня есть пользователи, пытающиеся вставить подобные вещи в текстовую область

     <p><span style="font-size:16px">
<span dir="RTL">در وقايع تاريخي صدر اسلام لفظ <span style="color:#008000">
<span style="font-size:22px">شيعه </span>
</span>تنها به معناي لغوي آن یعنی <span style="color:#FF0000">مناصره</span> و
<span style="color:#FF0000"> پیروی</span> و متابعه آمده است، بلكه مي‌بينيم كه در عهدنامه حکمیّت و واگذاري حكومت بين دو خليفه علي و معاويه </span>
<span dir="RTL">ب</span> 
<span dir="RTL">كلمه شيعه بر پيروان علي  اطلاق شده؛ همآن‏گونه که</span></span>بر پيروان معاويه نيز اطلاق شده و به پيروان علي اختصاص نيافته است.</p>
 

Как вы можете видеть, он имеет много вложенных промежутков. Я получаю то же самое с divs от некоторых людей. Как бы я мог удалить ВСЕ теги span и div, НО сохранить внутренний текст содержимого? Значит, я остаюсь с куском текста, заключенным в тег P?

Любая помощь с благодарностью.

Ответ №1:

Как насчет того, чтобы просто использовать регулярное выражение?

 // Remove all tags
string clean = Regex.Replace(dirty, "<[^>]*>", "");

// put back the P tag
string result = "<p>"   clean    "</p>"