Как с помощью OpenXML распарсить doc/docx файл?
У меня появилась задача распарсить doc файл и сохранить его в следующую структуру соблюдая вложенность списков(списки скорее всего лучше сохранять как и картинки)
Структура будет выглядит вот так
public class Document
{
public string FileName { get; set; }
public string Author { get; set; }
public string Titles { get; set; }
public string Text { get; set; }
public IEnumerable<string> Images { get; } = new List<string>();
}
Пока я добился того, что просто достаю весь текст из документа
private string GetPlainText(OpenXmlElement element)
{
StringBuilder text = new();
foreach (OpenXmlElement section in element.Elements())
{
switch (section.LocalName)
{
// Text
case "t":
text.Append(section.InnerText);
break;
case "cr":
case "br":
text.Append(Environment.NewLine);
break;
// Tab
case "tab":
text.Append("\t");
break;
// Paragraph
case "p":
text.Append(GetPlainText(section));
text.AppendLine(Environment.NewLine);
break;
default:
text.Append(GetPlainText(section));
break;
}
}
return text.ToString();
}
