Учитывая разметку (образец - реальная разметка может быть значительно более сложной) и перечисленные ниже ограничения, может ли кто-нибудь предложить решение (C #), более эффективное / действенное, чем обход всего дерева для получения {"@@ value1 @@", "@@ value2 @@", "@@ value3 @@"}, то есть список токенов, которые будут заменены, когда разметка фактически используется.
Примечание. Я не контролирую разметку, структуру разметки или формат / наименование заменяемых токенов.
<markup>
<element1 attributea="blah">@@value1@@</element1>
<element2>@@value2@@</element2>
<element3>
<element3point1>@@value1@@</element3point1>
<element3point2>@@value3@@</element3point2>
<element3point3>apple</element3point3>
<element3>
<element4>pear</element4>
</markup>