Извлечение текста внутри файла DOCX - PullRequest
0 голосов
/ 28 февраля 2012

Я использую приведенный ниже код для чтения файла .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 Ответ

2 голосов
/ 29 февраля 2012

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

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

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

Кому:

let xmlDoc = new XmlDocument()
xmlDoc.PreserveWhitespace <- true
xmlDoc.Load(stream)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...