提取docx文件中的文本

时间:2012-02-28 16:41:33

标签: f#

我使用下面的代码来读取.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 个答案:

答案 0 :(得分:2)

您需要在加载XmlDocument之前设置PreserveWhitespace属性。

所以改变代码:

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

要:

let xmlDoc = new XmlDocument()
xmlDoc.PreserveWhitespace <- true
xmlDoc.Load(stream)
相关问题