Поиск и заменить заполнители разделена на несколько -ElementsC#

Место общения программистов C#
Ответить
Anonymous
 Поиск и заменить заполнители разделена на несколько -Elements

Сообщение Anonymous »

Я пытаюсь создать отчеты из .docx-templates, используя Open XML SDK 2.5. В шаблонах я определил некоторых заполнителей, которые заменяются реальными ценностями. Заполнители могут быть определены в различных схемах, таких как < /p>

Код: Выделить всё

or

or
#Name#
or
{{Name}}
< /code>

Схема заполнителя также может быть в другом формате, если заполнители могут быть четко идентифицированы в тексте. < /p>

Проблема, с которой я в настоящее время сталкиваюсь, заключается в том, что заполнитель часто разделен между множественными  
-Elements (

Код: Выделить всё

DocumentFormat.OpenXml.Wordprocessing.Text
) в пределах -Element (

Код: Выделить всё

DocumentFormat.OpenXml.Wordprocessing.Paragraph
). Пример < /p>

Код: Выделить всё


#FirstName# 


#LastName


#


Здесь заполнитель #firstname # легко идентифицируется, потому что он находится в пределах одного -Element, но заполнитель # Lastname# разделен между множеством -elements, так что я не могу использовать простой режиссер на тексту в документе, например,

Regex placeholderRegex = new Regex(@"#[\w]*#");

document.MainDocumentPart.Document.Body.Descendants().Where(t=> placeholderRegex.IsMatch(t.Text))
< /code>

Я не имею управления, как определяются шаблоны, и я также не буду наносить ограничения на пользователей, как они должны создавать шаблон. Для меня также неясно, когда заполнитель разделится на несколько < /code> -Elements. *}} < /code> как схема для заполнителей. < /p>

text (docx) < /strong> < /p>

{{Ort}}
And this {{placeholder}} is within the text
< /code>

xml (openxml) < /strong> < /p>













{{





Ort





}}












This is a text with a





{{





placeholder





}





}







.










< /code>

Итак, мой вопрос теперь в том, как найти и заменить заполнители значениями, используя Open XML SDK? Есть ли в SDK какую -то функциональность, которая может мне помочь? Кто -нибудь еще решил эту проблему и оказал помощь?

Подробнее здесь: https://stackoverflow.com/questions/230 ... t-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»