F# 提取docx文件中的文本

F# 提取docx文件中的文本,f#,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.Pa

我正在使用下面的代码读取.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
在加载XmlDocument之前,需要在其上设置属性

因此,将代码更改为:

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

let xmlDoc=new XmlDocument()

PreserveWhitespace您所说的“原样”是指要保留外观和感觉吗?对我来说,它会返回
val docData:string=“我是第1行,我是第2行,我是其他文本”
(空格数正确)@GeneBelitski我不需要格式化,只需要保留换行符和空格。谢谢,非常有帮助。。我怎样才能同时保留换行符呢?我想你不能——我只是创建了一个与你类似的测试文档,然后在文本编辑器中打开了/word/document.xml,文档中根本没有任何换行符。相反,段落之间用。。。元素——因此您可以使用XPath查询或LINQ to XML来提取它们。非常感谢您的帮助和关注。。我想知道这么多该死的.net库有什么用。。
let xmlDoc = new XmlDocument()
xmlDoc.PreserveWhitespace <- true
xmlDoc.Load(stream)