如何从word内容中删除html标签?

时间:2014-06-29 21:44:07

标签: c# html ms-word office-interop

我知道有一些关于它的线索,只是简单地使用

Regex.Replace(input, "<.*?>", String.Empty);

但我不能在word doc中使用它。 我的代码就像:

Microsoft.Office.Interop.Word.Document wBelge = oWord.Documents.Add(ref oMissing,
    ref oMissing, ref oMissing, ref oMissing);
Microsoft.Office.Interop.Word.Paragraph paragraf2;
paragraf2 = wBelge.Paragraphs.Add(ref oMissing);
paragraf2.Range.Text ="some long text";

我可以通过查找和替换来改变

Word.Find findObject = oWord.Selection.Find;
findObject.ClearFormatting();
findObject.Text = "<strong>";
findObject.Replacement.Text = "";
findObject.Replacement.ClearFormatting();               

object replaceAllc = Word.WdReplace.wdReplaceAll;
findObject.Execute(ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
    ref replaceAllc, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

我是否需要为每个html标签执行此操作?

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

使用

将带有HTML添加的文本转换为简单字符串
string unFormatted = paragrapf2.ToString(SaveOptions.DisableFormatting));

然后用unFormatted字符串替换paragraf2 contect。

答案 1 :(得分:0)

在评论中提供了一些帮助,我意识到以下工作解决方案

findObject.ClearFormatting();
findObject.Text = @"\<*\>";
findObject.MatchWildcards=true;                     
findObject.Replacement.ClearFormatting();
findObject.Replacement.Text = "";                       

object replaceAll = Word.WdReplace.wdReplaceAll;
findObject.Execute(ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
    ref replaceAll, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

使用搜索模式\<*\>(包含通配符*,因此 findObject.MatchWildcards 必须设置为 true )。