OpenXML body.Elements() пуст при извлечении абзацев из DOCX в .NET 8C#

Место общения программистов C#
Anonymous
OpenXML body.Elements() пуст при извлечении абзацев из DOCX в .NET 8

Сообщение Anonymous »

Я работаю над проектом .NET 8, где мне нужно прочитать содержимое файла DOCX с точным форматированием (пробелы, разрыв строки и разрыв абзаца), используя класс WordprocessingDocument из DocumentFormat.OpenXml. Пространство имен упаковки.
Я подтвердил, что файл DOCX содержит текстовое содержимое, но когда я пытаюсь извлечь абзацы, тело.Elements
() коллекция кажется пустой, в результате чего цикл не выполняется. Однако я могу извлечь простое текстовое содержимое, вызвав body.InnerText.
Вот фрагмент моего текущего кода:

Код: Выделить всё

private string ReadDocxContentWithExactFormatting(string filePath)
{
try
{
using (WordprocessingDocument wordDocument = WordprocessingDocument.Open(filePath, false))
{
StringBuilder contentBuilder = new StringBuilder();
var body = wordDocument.MainDocumentPart.Document.Body;

// This loop is not running because
foreach (var paragraph in body.Elements
())
{
// Intended to process the paragraph text
}

return contentBuilder.ToString();
}
}
catch (Exception ex)
{
return $"Error reading file: {ex.Message}";
}
}

Коллекция body.Elements() кажется пустой, поэтому цикл не выполняется. Я подтвердил, что файл DOCX содержит текстовое содержимое, но, похоже, абзацы не распознаются. Я ожидаю, что абзацы будут доступны для обработки.
Как правильно извлечь абзацы с их точным форматированием?

Подробнее здесь: https://stackoverflow.com/questions/791 ... om-docx-in

Вернуться в «C#»