如何使用open xml和c#4.0从word文件中检索基于内容的段落?

Sar*_*nan 0 openxml openxml-sdk c#-4.0

我正在使用c#4.0并打开xml sdk 2.0来访问Word文件.为此,我想根据给定的文本检索段落.如果段落包含我的文本,则检索包含该文本的段落...

例如:给定的词是:TEST

检索包含单词"TEST"的段落

我想在段落中搜索给定的Word.如果发现任何匹配,那么我想显示那些方法.如果未找到匹配,则无需获取段落.

我怎样做?

小智 5

word文档的主要内容存储在body元素中.在最简单的级别,可以使用对文档执行的Linq查询来定位段落:

using(WordprocessingDocument document = WordprocessingDocument.Open(documentStream, true)){
    foreach(Paragraph p in document.MainDocumentPart.Document.Body.Descendants<Paragraph>().Where<Paragraph>(p => p.InnerText.Equals("SOME TEXT")){
        // Do something with the Paragraphs.
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我会建议问题比这复杂一点.在每个段落下,可能存在多个包含一串单词的Run(基本上是一个句子).用户输入单词"SOME TEXT"的位置很可能也包含其他运行.

但这应该能指出你正确的方向.