Есть некоторый код, который читает параметры для своей работы из XML-файла. Нужно запустить этот код для разных значений параметров.
Например:
запуск 1
<params>
<p1 value="100" />
<p2 value="Foo" />
</params>
запуск 2
<params>
<p1 value="200" />
<p2 value="Foo" />
</params>
запуск 3
<params>
<p1 value="200" />
<p2 value="Bar" />
</params>
Можно просто накопировать один файл и ручками поменять требуемые параметры. Но это неудобно. Хочется что-то вроде PHP или JSP, когда один и тот же файл маленько меняется в зависимости от каких-то внешних параметров. Например:
<params>
<p1 value="<%=if ($i=1) '100' else '200' )%>" />
<p2 value="<%=if ($i<3) 'Foo' else 'Bar' )%" />
</params>
Теоретически и JSP, и PHP решат проблему, но требуется что-бы сборка и запуск приложения были не слишком сложными. Идеально, если бы это была небольшая библиотека, используемая так:
std::string xml_str = load_file("params.xml"); // загружаем xml с хитрыми тэгами
for (int i = 0; i<3; ++i)
{
xml_str = process_string(xml_str, "$i", i); // вызов функции из волшебной библиотеки
do_something(xml_str); // здесь уже работаем с обычным xml-ем
}