Извлечение текста внутри файла docx

Я использую приведенный ниже код для чтения файла.docx, и он успешно извлекает текст из файла. Но проблема в том, что это просто извлечение текста. Например, если данные моего документа похожи ниже

I am line 1

I am line 2 I am some other text

Тогда он возвращает меня, как

I am line 1I am line 2I am some other text.

Я просто хочу, как есть. Как мне это сделать. Ниже приведен код, который я использую сейчас.

open System
 open System.IO
 open System.IO.Packaging
 open System.Xml

 let getDocxContent (path: string) =
 use package = Package.Open(path, FileMode.Open)
 let stream = package.GetPart(new Uri("/word/document.xml",UriKind.Relative)).GetStream()
 stream.Seek(0L, SeekOrigin.Begin) |> ignore
 let xmlDoc = new XmlDocument()
 xmlDoc.Load(stream)
 xmlDoc.DocumentElement.InnerText
 let docData = getDocxContent @"C:\a1.docx"
 printfn "%s" docData
1 ответ

Перед загрузкой вам необходимо установить свойство PreserveWhitespace на свой XmlDocument.

Поэтому измените код:

let xmlDoc = new XmlDocument()
xmlDoc.Load(stream)

Для того, чтобы:

let xmlDoc = new XmlDocument()
xmlDoc.PreserveWhitespace <- true
xmlDoc.Load(stream)

licensed under cc by-sa 3.0 with attribution.