いくつかのワードドキュメントを処理しようとしています
- それらとそれらをマージします
OpenXMLPowerTools.DocumentBuilder
(WmlDocumentsを必要とし、出力します) - 経由ですべてのコメントを削除
OpenXMLRegex.Replace
これらの各ステップは、独立して正常に機能します。ただし、 をOpenXMLRegex
必要とし、変更しIEnumerable<System.Xml.Linq.XElement>
ます。問題は、この列挙型を にマッピングし直すときに発生しWmlDocument
ます。
WmlDocument
要素またはを設定することはできませんMainDocumentPart
。ここに、a を変更する
例があります。ただし、それをいずれかにマップする方法が見つかりません。DocumentFormat.OpenXml.Packaging.WordProcessingDocument
WmlDocument
WmlDocument RemoveComments(WmlDocument doc)
{
Regex regex = new Regex(@"/\*([^/\*])*\*/");
string commentArtifact = "";
List<XElement> matches = new List<XElement>();
var docElements = doc.MainDocumentPart.Elements();
OpenXmlRegex.Replace(docElements, regex, commentArtifact, null);
//TODO: How to map back to WmlDocument
return doc;
}
一貫性のあるさらなる処理のために、変更された WmlDocument を出力することを強くお勧めします。
OpenXmlPowerTools バージョン 4.5.3.2 を使用しています