docx unzerbrechliche Wörter
Ich versuche, Wörter in einer docx-Datei wie beschrieben zu ersetzenHier:
public static void SearchAndReplace(string document)
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true))
{
string docText = null;
using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
docText = sr.ReadToEnd();
}
Regex regexText = new Regex("Hello world!");
docText = regexText.Replace(docText, "Hi Everyone!");
using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.Write(docText);
}
}
}
Das funktioniert einwandfrei, außer dass für SomeTest in einem Dokument manchmal Folgendes angezeigt wird:
<w:t>
Some
</w:t>
</w:r>
<w:r w:rsidR="009E5AFA">
<w:rPr>
<w:b/>
<w:color w:val="365F91"/>
<w:sz w:val="22"/>
</w:rPr>
<w:t>
Test
</w:t>
</w:r>
Und natürlich schlägt der Austausch fehl. Vielleicht gibt es eine Problemumgehung, um einige Wörter in docx unzerbrechlich zu machen? Oder mache ich das vielleicht falsch?