我使用下面的代码来读取.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
答案 0 :(得分:2)
您需要在加载XmlDocument之前设置PreserveWhitespace属性。
所以改变代码:
let xmlDoc = new XmlDocument()
xmlDoc.Load(stream)
要:
let xmlDoc = new XmlDocument()
xmlDoc.PreserveWhitespace <- true
xmlDoc.Load(stream)