我想從使用OpenXML的.docx文件中刪除段落(我正在使用一些佔位符文本來生成從docx模板樣文件生成),但是每當我刪除段落,它就會打破foreach循環我正在使用迭代低谷。C#openxml刪除段落
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循環停止或如何使它不會停止?謝謝。
其實我已經完成.ToList(),因爲一些其他併發症使用以前解。此外,我知道單詞分成多次運行(這裏,這裏是一個不好的例子),所以我的佔位符沒有'_'。而且我的佔位符是硬編碼的,所以儘管我知道內容控制的優點,但我並沒有使用它們,因爲我不太瞭解它們,並且有短(小)項目時間表。感謝您的回答,這非常有見地,更完整。 – 2012-03-27 10:22:14