OpenXML: чтение текста между двумя полями документа с использованием OpenXML SDK - PullRequest
1 голос
/ 08 октября 2010

Я новичок в программировании с помощью OpenXML SDK, и я слишком много пытался найти и прочитать текст, который находится между двумя полями документа, но так и не удалось. В Интернете существует множество примеров и учебных пособий практически обо всем, что вы можете придумать, используя OpenXML SDK, от установки водяных знаков до создания писем слиянием, но не только об обработке полей документа.

Мой документ Word выглядит примерно так:

{ Field1 } data { Field2 }

и что я хочу сделать, это прочитать данные, которые находятся между Field1 и Field2.

Мне удалось найти все нужные мне поля следующим образом:

var qryFieldCode = (from p in procDoc.MainDocumentPart.Document.Body.Descendants()
                    where p.GetType() == typeof(FieldCode)
                    select p).ToList();

Но что я могу сделать, чтобы прочитать текст между полями, которые я нашел?

Любая помощь очень ценится.

1 Ответ

3 голосов
/ 08 октября 2010

Найдите свое первое поле (как и выше), а затем получите .ElementsAfterSelf.TakeWhile, пока p.GetType() не = typeof(FieldCode)Тогда просто получите .Value этого запроса, и вы получите свой текст.Это не будет хорошим решением, если у вас есть такие вещи, как таблицы между двумя полями, но для вашего приведенного выше примера это сработает.

...