我正在尝试使用OpenXML从.docx文件中删除段落(我正在使用一些占位文本从docx模板文件进行生成),但是每当我删除段落时,它就会破坏我正在使用的foreach循环,这个循环用来遍历。
MainDocumentPart mainpart = doc.MainDocumentPart;
IEnumerable<OpenXmlElement> elems = mainPart.Document.Body.Descendants();
foreach(OpenXmlElement elem in elems){
if(elem is Text && elem.InnerText == "##MY_PLACE_HOLDER##")
{
Run run = (Run)elem.Parent;
Paragraph p = (Paragraph)run.Parent;
p.RemoveAllChildren();
p.Remove();
}
}
这行代码可以移除我的占位符和它所在的段落,但是foreach循环停止迭代了。我需要在我的foreach循环中做更多的事情。
这种使用OpenXML在C#中移除段落的方法是可行的吗?为什么我的foreach循环会停止迭代或者如何使它不停止?谢谢。