Я создаю несколько файлов слов (и заменяю некоторые слова) из шаблона слов, используя этот фрагмент кода:
File.Copy(sourceFile, destinationFile, true);
try
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(destinationFile, true))
{
string docText = null;
using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
docText = sr.ReadToEnd();
}
foreach (KeyValuePair<string, string> item in keyValues)
{
Regex regexText = new Regex(item.Key);
docText = regexText.Replace(docText, item.Value);
}
using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.Write(docText);
}
}
}
Но когда я пытаюсь открыть полученный файл, я получаю эту ошибку:
Приносим извинения. Мы не можем открыть XXX.docx, потому что обнаружили проблему с его содержимым
Ошибка синтаксического анализа XML Расположение: Часть: /word/document.xml, Строка: 2, Столбец: 33686
Вот содержимое document.xml
в определенном месте:
.....<w:szCs w:val="20"/><w:lang w:val="en-US"/></w:rPr><w:t> </w:t></w:r><w:proofErr w:type="spellEnd"/>....
Где 33686 - позиция & nbsp. Как я могу решить эту проблему?
РЕДАКТИРОВАТЬ В другом файле, который правильно создан в той же позиции, есть некоторые случайные символы, которые я использовал для тестирования, которые также используются в заголовке документа