我正在使用此代码从 Word 文档中删除内容控件(发布在链接上)
MainDocumentPart mainPart = _wordDocument.MainDocumentPart;
List<SdtBlock> sdtList = mainPart.Document.Descendants<SdtBlock>).ToList();
foreach (SdtBlock sdt in sdtList)
{
OpenXmlElement sdtc = sdt.GetFirstChild<SdtContentBlock>();
OpenXmlElement parent = sdt.Parent;
OpenXmlElementList elements = sdtc.ChildElements;
var mySdtc = new SdtContentBlock(sdtc.OuterXml);
foreach (OpenXmlElement elem in elements)
{
parent.Append((OpenXmlElement)elem.Clone());
}
sdt.Remove();
}
一切正常,但删除操作后的文本丢失了操作前的位置。我从 openxmlpowertools 知道 SimplifyMarkup,但我不能使用它。感谢任何建议