Как извлечь содержание на основе абзаца из файла слова, используя открытые XML и C # 4.0? - PullRequest
0 голосов
/ 21 марта 2011

Я использую c # 4.0 и открываю xml sdk 2.0 для доступа к файлу Word. Для этого теперь я хочу получить абзац на основе заданного текста. Если абзац содержит мой текст, то получить абзац, содержащий этот текст. .

ДЛЯ ПРИМЕРА: Данное слово: ТЕСТ

Получить абзацы, содержащие слово «ТЕСТ»

Я хочу найти указанное Слово в абзаце. Если найдены совпадения, то я хочу отобразить эти методы. Если совпадений не найдено, нет необходимости получать абзац.

Как мне?

1 Ответ

5 голосов
/ 22 марта 2011

Основное содержание текстового документа хранится в элементе 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 (по сути, предложение), содержащих строку слов.Вполне вероятно, что там, где пользователь ввел слово «НЕКОТОРЫЙ ТЕКСТ», также содержатся другие прогоны.

Но это должно быть в состоянии указать вам правильное направление.

...