我认为以下方法会起作用:
var bod = wordDoc.MainDocumentPart.Document.Body;
foreach (var bookmark in bod.Descendants<BookmarkStart>())
{
bookmark.Remove();
}
foreach (var bookmark in bod.Descendants<BookmarkEnd>())
{
bookmark.Remove();
}
但这会破坏文件。
我认为以下方法会起作用:
var bod = wordDoc.MainDocumentPart.Document.Body;
foreach (var bookmark in bod.Descendants<BookmarkStart>())
{
bookmark.Remove();
}
foreach (var bookmark in bod.Descendants<BookmarkEnd>())
{
bookmark.Remove();
}
但这会破坏文件。
试试这个,它适用于我的文档。
var bs = wordDoc.MainDocumentPart.Document
.Descendants<BookmarkStart>()
.ToList();
foreach (var s in bs)
s.Remove();
var be = wordDoc.MainDocumentPart.Document
.Descendants<BookmarkEnd>()
.ToList();
foreach (var e in be)
e.Remove();
尝试添加
书签.RemoveAllChildren();
前
书签.删除()
简单的解决方案:
wordDoc.MainDocumentPart.Document.RemoveAllChildren<BookmarkStart>();
wordDoc.MainDocumentPart.Document.RemoveAllChildren<BookmarkEnd>();