премахване на MS Office боклук от текстов низ

Имам низ, който съдържа куп боклук от MS Word като този:

<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>

</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]>

<style>
 /* Style Definitions */
 table.MsoNormalTable
    {mso-style-name:"Table Normal";
    mso-tstyle-rowband-size:0;
    mso-hansi-font-family:Calibri;
    mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->

Опитах функцията по-долу, за да го премахна, но те премахват само части и оставят много бяло пространство:

Public Function CleanOfficeJunk(html As String) As String
    ' start by completely removing all unwanted tags 
    html = System.Text.RegularExpressions.Regex.Replace(html, "<[/]?(font|span|xml|del|ins|[ovwxp]:\w+)[^>]*?>", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    ' then run another pass over the html (twice), removing unwanted attributes 
    html = System.Text.RegularExpressions.Regex.Replace(html, "<([^>]*)(?:class|lang|style|size|face|[ovwxp]:\w+)=(?:'[^']*'|""[^""]*""|[^\s>]+)([^>]*)>", "<$1$2>", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    html = System.Text.RegularExpressions.Regex.Replace(html, "<([^>]*)(?:class|lang|style|size|face|[ovwxp]:\w+)=(?:'[^']*'|""[^""]*""|[^\s>]+)([^>]*)>", "<$1$2>", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    Return html
End Function

Използвам това в отчет на SQL Server Reporting Service (SSRS) и трябва да почистя низовете, преди да ги покажа в текстово поле.

Има ли по-добър начин за премахване на неща като този?

редакция: Видях тази публикация Премахване на HTML коментари с Regex, в Javascript

Но приетият отговор изглежда не работи в моята ситуация.


person SkyeBoniwell    schedule 04.02.2016    source източник
comment
Възможно ли е вашият низ да съдържа добро < OR >. Ако не, защо просто не премахнете всичко, оградено в < and >...   -  person zaggler    schedule 04.02.2016
comment
Може да съдържа ‹br› тук или там. Благодаря   -  person SkyeBoniwell    schedule 04.02.2016
comment
Последен въпрос, искате ли само текста между тага, който искате да посочите? По принцип само за етикетите, които разрешавате   -  person zaggler    schedule 04.02.2016
comment
@Codexer Просто искам да премахна всички неща между xml и style тагове. Ако има нещо като ‹span›здравейте...‹/span› тогава бих искал да запазя това благодаря   -  person SkyeBoniwell    schedule 04.02.2016


Отговори (1)


Трябва да опитате да зададете свойството PlaceHolder на HTML. Това оправи проблема ми.

въведете описание на изображението тук

person Altaf Patel    schedule 16.10.2017